【发布时间】:2013-04-09 11:34:07
【问题描述】:
如何创建一个形状为 (120,120) 的 numpy 数组,前 7 个值为 0.924,其余值为 0.53。我需要这个作为 matplotlib 中的矩阵
【问题讨论】:
-
这个问题与matplotlib没有严格的关系。标签已移除
如何创建一个形状为 (120,120) 的 numpy 数组,前 7 个值为 0.924,其余值为 0.53。我需要这个作为 matplotlib 中的矩阵
【问题讨论】:
最快的方法大概是创建一个空数组,用一个常数值填充,然后更新几个需要更新的值:
>>> x = np.empty((120, 120))
>>> x.fill(0.53)
>>> x[0,:7] = 0.924
>>> x
array([[ 0.924, 0.924, 0.924, ..., 0.53 , 0.53 , 0.53 ],
[ 0.53 , 0.53 , 0.53 , ..., 0.53 , 0.53 , 0.53 ],
[ 0.53 , 0.53 , 0.53 , ..., 0.53 , 0.53 , 0.53 ],
...,
[ 0.53 , 0.53 , 0.53 , ..., 0.53 , 0.53 , 0.53 ],
[ 0.53 , 0.53 , 0.53 , ..., 0.53 , 0.53 , 0.53 ],
[ 0.53 , 0.53 , 0.53 , ..., 0.53 , 0.53 , 0.53 ]])
【讨论】:
--> x = np.array([0.53]*(120*120)).reshape(120,120)
--> x[0,:7] = 0.924
将第一行的前 7 个值填充为 0.924,交换索引中的 0 和 :7 以得到第一列中的前 7 个为 0.924
【讨论】:
x = np.ones((120, 120))*0.53 是一个类似且可能更快的单行解决方案。 (这三个中最快的是我的答案,因为它只涉及简单快速的值设置。)