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