Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何有效地设置numpy数组2D和1D数组的整列?_Python_Arrays_Numpy - Fatal编程技术网

Python 如何有效地设置numpy数组2D和1D数组的整列?

Python 如何有效地设置numpy数组2D和1D数组的整列?,python,arrays,numpy,Python,Arrays,Numpy,我有一个NxM维的numpy数组“a”和N维的M数组“B”。 在a for(i:0,1,….M)中,我计算这个B数组,我想设置数组的整个列“i”。 我试图使用[:,i]访问,但工作速度太慢 如何有效地做到这一点 # Initialize array. A = np.empty([N, M]) for i in range(M): # Compute of B (array N elements): B = ...An operation that results in a 1D

我有一个NxM维的numpy数组“a”和N维的M数组“B”。 在a for(i:0,1,….M)中,我计算这个B数组,我想设置数组的整个列“i”。 我试图使用[:,i]访问,但工作速度太慢

如何有效地做到这一点

# Initialize array.
A = np.empty([N, M])

for i in range(M):
    # Compute of B (array N elements):
    B = ...An operation that results in a 1D array, different in each iteration
    A[:, i] = B

编辑:B值在“i”迭代中不同。

创建
A
为形状
(M,N)
。设置
A[i]=B
将比
A[:,i]=B
快。因为内存在
A[i]
中是连续的,而不是在
A[:,i]
中。另一个选择是尝试
numba.jit
。在某些情况下,它可能会加快很多!所以,
B
在迭代过程中保持不变?不,B值在迭代过程中是不同的。这只是一个例子。然后,我认为你已经有了最好的版本,除非我们能够以某种方式优化生成这些B矩阵。创建
A
为shape
(M,N)
。设置
A[i]=B
将比
A[:,i]=B
快。因为内存在
A[i]
中是连续的,而不是在
A[:,i]
中。另一个选择是尝试
numba.jit
。在某些情况下,它可能会加快很多!所以,
B
在迭代过程中保持不变?不,B值在迭代过程中是不同的。这只是一个例子。然后,我认为你已经有了最好的版本,除非我们能以某种方式优化生成这些B矩阵。