小编Sha*_*_01的帖子

如何理解以下多维数组的奇特索引行为?

我们注意到,对于多维数组来说,花式索引和切片的混合使用非常令人困惑且没有记录,例如:

In [114]: x = np.arange(720).reshape((2,3,4,5,6))

In [115]: x[:,:,:,0,[0,1,2,4,5]].shape
Out[115]: (2, 3, 4, 5)

In [116]: x[:,:,0,:,[0,1,2,4,5]].shape
Out[116]: (5, 2, 3, 5)
Run Code Online (Sandbox Code Playgroud)

我已经在https://numpy.org/doc/stable/user/basics.indexing.html上阅读了花哨索引的用法,我可以理解这一点x[:,0,:,[1,2]] = [x[:,0,:,1], x[:,0,:,2]]。但是我无法理解为什么上面的结果在第一个维度上Input [115]有所Input [116]不同。有人可以指出此类广播规则的记录在哪里吗?

谢谢!

我尝试在文档中搜索奇特的索引,并将问题发布到 Github 上的 numpy 存储库。

python numpy numpy-slicing numpy-ndarray array-broadcasting

5
推荐指数
1
解决办法
118
查看次数

可以使用逗号连接 switch 语句的两种情况吗

我一直在最新的项目中使用 switch 语句,并希望有两个可能的值执行相同的代码。所以我查找了如何做到这一点的方法。我发现的唯一答案如下所示:

switch (element) {
   case hi:
   case hello:
      //do something here
      break;
}
Run Code Online (Sandbox Code Playgroud)

但我做了更多实验,发现我的 IDE 并没有抱怨:

switch (element) {
   case hi, hello:
      //do something here
      break;
}
Run Code Online (Sandbox Code Playgroud)

所以我尝试了一下,发现它有效。所以我想知道使用这种方法是否有问题,因为我在网上没有找到任何内容。我很想能够使用它,因为它看起来干净多了。

java switch-statement

0
推荐指数
1
解决办法
4689
查看次数