Hab*_*bie 4 python arrays indexing numpy multidimensional-array
我有两个索引数组。
elim=range(130,240)
tlim=range(0,610)
Run Code Online (Sandbox Code Playgroud)
要索引的数组 的I原始形状为(299, 3800)
当我尝试按如下方式对其进行索引时
I[elim,tlim]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息。
形状不匹配:索引数组无法与形状 (110,) (610,) 一起广播
我没想到会出现这样的错误。有人能解释一下这里发生了什么吗?
谢谢!
让我们用指定形状的随机数组重现该示例:
elim=range(0,610)
tlim=range(130,240)
a = np.random.rand(299, 3800)
a[tlim, elim]
Run Code Online (Sandbox Code Playgroud)
IndexError:形状不匹配:索引数组无法与形状 (110,) (610,) 一起广播
这会引发错误,因为您使用整数索引数组来索引数组,因此将应用高级索引规则。在这个例子中你应该使用切片
a[130:240,0:610].shape
# (110, 610)
Run Code Online (Sandbox Code Playgroud)
请参阅理解切片表示法(NumPy 索引,只是同一概念到 n 维数组的扩展。
对于您有一个索引列表(不一定可以表示为切片)的情况,您有np.ix_. 有关 numpy 索引的更多信息,这可能会有所帮助
a[np.ix_(tlim, elim)].shape
# (110, 610)
Run Code Online (Sandbox Code Playgroud)