2017-08-20 3 views
1

私はPythonで非常に基本的なロジックを学びたいと思っています。私は2つの列があります。 ある配列から5番目のインデックスをすべて別の配列から減算したい。私はmistake.Why出力が1を超えている作っていますどこnumpy配列上の5番目のインデックスを繰り返す方法

x=np.arange(25,100).reshape(25,3) 
y=x[:,0] 
z=x[:,1] 
for i in range(0,25,5):  # Till These 2 loop looks fine 
    print y[i] 
for j in range(0,25,5): 
    print z[j] 
# Problems portion 
for i in range(0,25,5): 
    for j in range(0,25,5): 
      print y[i]-z[j] 
      -1 
-16 
-31 
-46 
-61 
    14  #Output 
    -1 
-16 
-31 
-46 
    29 
    14 
    -1 
-16 
-31 
    44 
    29 
    14 
    -1 
-16 
    59 
    44 
    29 
    14 
    -1 

がお勧めしてください: は、これまでのところ、私は以下のコードで試してみましたか? ありがとうございました!

答えて

3

あなたはnumpyの単純な美しさを見逃しています。

>>> y - z 
array([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
    -1, -1, -1, -1, -1, -1, -1, -1]) 

すべての5番目の位置、使用スライス表記減算する:とにかく

>>> y[::5] - z[::5] 
array([-1, -1, -1, -1, -1]) 

を、あなたも同じ位置にすべてのペアだけではなくペアを反復処理しています。あなたのやり方をするには、ただ1つのループを使用してください:

+0

両方の範囲が異なる場合はもう一度疑問がありますか? – Poka

+0

私はすでにそれを与えています。今、私は十分な評判を集めていません。しかし、私はオレンジ色のティックを与えている。 – Poka

+1

@Poka [回答を受け入れる](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)には評判は必要ありません。 – MSeifert

関連する問題