1

私はマトリックスを持っています

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]])
y=[]
for i in range(0, 3):
    for j in range(0, 3):
        if x[0][0]< x[i][j]:
            y.append(1)
        else:
            y.append(0)

出力:

>>> t
[0, 1, 1, 1, 1, 1, 1, 1, 1]

この記述は正しいですか?

4

2 に答える 2

3

まず、記述どおりにコードを実行すると、貼り付けた値ではなく、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])
于 2013-07-31T23:23:41.267 に答える