在numpy中是否有一个函数,它将返回从0的幂到整数的每行向量的矩阵

时间:2017-02-06 08:21:35

标签: python numpy

假设我有一个垂直向量X = [1,[2],[3]]和整数pow = 2。 在numpy中是否有一个函数,它将返回从0的幂到pow(pow = 2)的每行向量x的矩阵

以上示例应返回矩阵

[[1, 1, 1],
 [1, 2, 4],
 [1, 3, 9]]

我查看了numpy.power,但是返回了一个数组。

4 个答案:

答案 0 :(得分:1)

rules of broadcasting之后,我们可以扩展到2D,然后使用范围数组提升 -

X[:,None]**np.arange(3)  # Or np.power(X[:,None], np.arange(3))

示例运行 -

In [7]: X = np.array([1,2,3])

In [8]: X[:,None]**np.arange(3)
Out[8]: 
array([[1, 1, 1],
       [1, 2, 4],
       [1, 3, 9]])

如果X已经延长,只需加注 -

In [24]: X = np.array([[1],[2],[3]])

In [25]: X**np.arange(3)
Out[25]: 
array([[1, 1, 1],
       [1, 2, 4],
       [1, 3, 9]])

答案 1 :(得分:1)

我认为没有特定的功能,但您可以使用阵列广播。

ItemClick="{Binding DataContext.ClickCommand, ElementName=HeaderList}"

答案 2 :(得分:1)

您正在寻找的功能是

numpy.vander

答案 3 :(得分:0)

如果n很大,我建议您使用嵌套循环。计算功率很昂贵。做这样的事情:

arr = [1]
for i in range(1, p + 1):
   arr.append(p * arr[-1])