Python NumPy:如何使用公式填充矩阵
我想初始化一个矩阵Python NumPy:如何使用公式填充矩阵,python,numpy,matrix,scipy,Python,Numpy,Matrix,Scipy,我想初始化一个矩阵a,对于一些f(这并不重要) 我怎样才能简明扼要地避免出现两个for循环的情况?符合这里的要求 文档中的示例: >>> import numpy as np >>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int) array([[0, 1, 2], [1, 2, 3], [2, 3, 4]]) 还可以使用numpy.index获取数组的索引,然后以矢量化方式应用函数f
a
,对于一些f
(这并不重要)
我怎样才能简明扼要地避免出现两个for循环的情况?符合这里的要求
文档中的示例:
>>> import numpy as np
>>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int)
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
还可以使用
numpy.index
获取数组的索引,然后以矢量化方式应用函数f
import numpy as np
shape = 1000, 1000
Xi, Yj = np.indices(shape)
A = (2*Xi + 3*Yj).astype(np.int) # or any other function f(Xi, Yj)
警告:文档没有清楚地解释这一点,但是
np.fromfunction(f,shape,dtype=dtype)
是f(*np.indexs(shape,dtype=dtype))的薄薄包装。它不会为每个单元格执行对f
的单独调用,因此如果您向它传递一个无法以矢量化方式工作的函数,您将得到奇怪和错误的结果。