2

したがって、配列内の値が特定の範囲内にあるかどうかを検出してから、バイナリ論理配列、つまり true の場合は 1、false の場合は 0 を返そうとしています。私はこれを持っていますが、iPythonは文句を言い続けます

D = ( 1 < X[0,:] + X[1,:]) < 2 ).astype(int)

興味深いのは、一方向をチェックするだけでまったく問題なく動作することです

D = ( X[0,:] + X[1,:]) < 2 ).astype(int)

私は少し困惑しています。

4

5 に答える 5

2
Y=X[0,:]+X[1,:]
D = ((1<Y) & (Y<2)).astype(int)
于 2010-11-12T13:45:58.413 に答える
1

unutbuは短く、これはより明確です

>>> import numpy
>>> numpy.logical_and(1 < np.arange(5), np.arange(5)< 4).astype(int)
array([0, 0, 1, 1, 0])
于 2010-11-12T15:08:55.533 に答える
1
array = (1, 2, 3, 4, 5)
bit_array = map(lambda x: 1 < x < 5 and 1 or 0, array)

その後、bit_arrayは[0、1、1、1、0]になります。それはあなたが望んでいたことですか?

于 2010-11-12T13:11:51.997 に答える
0

これ?

 bits = [ bool(low <= value < high) for value in some_list ]
于 2010-11-12T13:17:49.173 に答える
0

使用してみてくださいall(返すように編集されていintます):

D = numpy.all([1 < x, x < 2], axis=0).astype(int)
于 2010-11-12T13:43:36.800 に答える