我想编写一个函数,该函数采用numpy数组(以更方便的方式为准)和数字。
该函数应返回一个从0到n的幂的矩阵。
例如如果我输入[1,2]和3,矩阵应该返回
np.matrix([[1,1],[1,2],[1,4],[1,8]])
我知道我可以编写一个循环来执行此操作,但是是否有更简洁/快速的方法?有没有办法使用生成器编写代码?
答案 0 :(得分:5)
您可以使用broadcasting
-
In [60]: [1,2]**np.arange(4)[:,None]
Out[60]:
array([[1, 1],
[1, 2],
[1, 4],
[1, 8]])
使用np.vander
的紧凑型打印机,因为它基本上是vandermode
矩阵-
In [78]: np.vander([1,2],4,1).T
Out[78]:
array([[1, 1],
[1, 2],
[1, 4],
[1, 8]])
对于matrix
类型-
In [61]: np.asmatrix([1,2]**np.arange(4)[:,None])
Out[61]:
matrix([[1, 1],
[1, 2],
[1, 4],
[1, 8]])