我遵守了你的守则
np.where
返回了预期结果:一个元组具有两个1D数组,其中包含满足条件的索引:
import numpy as np
h = np.random.uniform(size=(734, 814))
r1 = np.where(np.logical_and(h >= 0.1, h < 0.9))
print(r1[0].shape, r1[1].shape) # (478129,) (478129,)
这意味着478129个元素符合条件。对于每一个,r1[0]都有其行索引,r1
1
将有其列索引。即,如果
r1
看起来像
(array([ 0, 0, 0, ..., 733, 733, 733]), array([ 0, 1, 2, ..., 808, 809, 811]))
那我就知道了
h[0, 0]
,请
h[0, 1]
,请
h[0, 2]
,etc满足以下条件:行索引来自第一个数组,列索引来自第二个数组。这个结构可能不太可读,但它可以用于索引数组
h
是的。
转置后的输出形式更具可读性,它是一个具有行-列索引对的二维数组:
array([[ 0, 0],
[ 0, 1],
[ 0, 2],
...,
[733, 808],
[733, 809],
[733, 811]])
它可以通过转置获得
r1级
(如果你需要原件
r1级
或者直接与
np.argwhere
以下内容:
r1 = np.argwhere(np.logical_and(h >= 0.1, h < 0.9))