python中的数组语句

python中的数组语句,python,arrays,numpy,Python,Arrays,Numpy,我有一个矩阵 1 2 3 4 5 6 7 8 9 我想将同一矩阵的第一个元素与另一个元素结合起来,创建新的矩阵 x和y是ndarray 我想用python编写这段代码 for i=0 to 3 do for j=0 to 3 do if x[0][0]<x[i][j] then t[i][j]=1 else t[i][j]=0 这句话对吗 我想你想要的是 x=np.array([[

我有一个矩阵

1   2   3
4   5   6
7   8   9
我想将同一矩阵的第一个元素与另一个元素结合起来,创建新的矩阵

x和y是ndarray 我想用python编写这段代码

for i=0 to 3 do
    for j=0 to 3 do
      if  x[0][0]<x[i][j] then 
            t[i][j]=1
      else
           t[i][j]=0

这句话对吗

我想你想要的是

x=np.array([[1,2,3], [4,5,6], [7,8,9]])
output = []
for i in range(0, 3):
    y=[]
    for j in range(0, 3):
        if x[0][0]< x[i][j]:
            y.append(1)
        else:
            y.append(0)
     output.append(y)
print output
x=np.数组([[1,2,3],[4,5,6],[7,8,9])
输出=[]
对于范围(0,3)内的i:
y=[]
对于范围(0,3)内的j:
如果x[0][0]
但这很难从你的问题中分辨出来

但更好的解决办法是

map(lambda tmp:map(int,tmp),(x+x[0,0])[0,0] < x)
map(lambda-tmp:map(int,tmp),(x+x[0,0])[0,0]

或者最好先将jterraces解决方案与numpy一起使用,当我完全按照规定运行代码时,我得到的是y的值,而不是粘贴的值:

[0, 1, 1, 1, 1, 1, 1, 1, 1]
我怀疑你试图做的并不是你在这里写的,但假设是这样,这里有一个更简单的方法来实现同样的结果:

>>> np.where(x > x[0,0], 1, 0).flatten()
array([0, 1, 1, 1, 1, 1, 1, 1, 1])

但是,如果我想组合元素
x[1][1]
,这会产生
>>输出[[0,1,1],[1,1,1],[0,0,0],[0,0,1],[0,0,1],[1,1,1]]
,通常它会给我一个由3行3列组成的矩阵。
>输出[[0,1,1],[1,1],[1,1],[1,1]]
,我不明白你所说的“组合元素x[1][1][1]”是什么意思[1] [1]=5加上所有x[i][j](2,3,4,5,6,7,8,9),如果这是一个非常令人困惑的问题……什么?你刚才不是提供了你自己的答案吗?
[0, 1, 1, 1, 1, 1, 1, 1, 1]
>>> np.where(x > x[0,0], 1, 0).flatten()
array([0, 1, 1, 1, 1, 1, 1, 1, 1])