Python矩阵形成

时间:2013-03-03 16:46:18

标签: python arrays matrix

我想编写一个类似于:

的python矩阵
[P1^3,p2^3,p3^3,p4^3 ...]
[p1^2,p2^2,p3^2,p4^2 ...]
[p1^1,p2^1,p3^1,p4^1 ...]
[p1^0,p2^0,p3^0,p4^0 ...]

列数和p的索引取决于i的输入pi

我尝试了很多方法,但它不起作用。

有人请帮帮我。

2 个答案:

答案 0 :(得分:3)

如果您真的想要**而不是^,则可以使用numpy.vander库中的numpy(对于Vandermonde)执行此操作({{3 }}):

In [13]: p = numpy.array([2, 3, 5, 10])

In [14]: numpy.vander(p, 4).T
Out[14]: 
array([[   8,   27,  125, 1000],
       [   4,    9,   25,  100],
       [   2,    3,    5,   10],
       [   1,    1,    1,    1]])

函数调用之后的.T转换数组,因为numpy.vander创建的数组是您想要的转置。

答案 1 :(得分:0)

[[y^x for y in [p1, p2, p3, p4]] for x in [3, 2, 1, 0]]可能就是你想要的。

这扩展到

[[y^3 for y in [p1, p2, p3, p4]], 
[y^2 for y in [p1, p2, p3, p4]],
[y^1 for y in [p1, p2, p3, p4]],
[y^0 for y in [p1, p2, p3, p4]]]

请注意^在python中是xor。

我不确定你想要到达的地方......

另外,你的意思是numpy矩阵/数组还是嵌套列表?