【发布时间】:2019-08-14 19:05:19
【问题描述】:
我想根据一个操作有效地填充一个二维 numpy 数组
我想在一行中执行以下操作
1DArray = ['A','B','C','D']
N = len(1DArray)
2DArray = np.zeros((N,N))
for i in range(N):
for j in range (i, N):
2DArray[i,j] = function(1DArray[i], 1DArray[j])
【问题讨论】:
-
如果
function仅适用于单个值,那么您最好这样做。必须为每个ij对调用一次。 -
你知道
function(..)吗? -
为什么
j从i开始? -
我没有注意到
(i,N)。有一组numpy函数可以索引或选择上三角或下三角,np.tri...但如果您可以使用某种outer计算编写function,它可能会比这种迭代更快,即使它填充了整个数组 -
只有当
function可以被向量化时,向量化才是可能的。我在this post 的回答可能对你有帮助。