2013-03-03 31 views
0

我想写一个python矩阵,看起来像: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指数由输入的pi

我尝试过很多办法i确定,但它不起作用。

有人请帮帮我。

+3

你尝试了很多方法!?如? – StoryTeller 2013-03-03 16:54:21

+0

你真的想在每个条目上执行独占或操作吗? – talonmies 2013-03-03 17:01:56

+0

“列的数量和p的索引是由pi的输入i决定的”令我感到困惑,您能否详细说明/重述?你是说p(i)不是pi吗? – fread2281 2013-03-03 17:13:09

回答

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]]] 

注意^是蟒蛇异。

我真的不知道你正在尝试到这里......

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

3

如果你真的意味着**,而不是^,你可以用一个单一的功能,numpy.vander(用于范德蒙)从numpy库(http://www.numpy.org/)做到这一点:在函数调用调换的

.T

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]]) 
数组,因为由 numpy.vander创建的数组是您想要的转置。