首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy:用括号切片和用逗号切片有什么区别?

Numpy:用括号切片和用逗号切片有什么区别?
EN

Stack Overflow用户
提问于 2022-02-16 08:31:11
回答 2查看 79关注 0票数 3

X和x,y的区别是什么?在我的示例中,我希望将np.ndarray分配给另一种方式,其中一种方式工作,而另一种方式不起作用。同样的指数,所以我很想知道为什么。谢谢。

代码语言:javascript
复制
>>> gtfb_fft_hypercube.shape
(187, 42, 96, 1026)
>>> amp_mod_cube.shape
(42, 1025, 187)
>>> gtfb_fft_hypercube[0][0][0][1:] = amp_mod_cube[0][:][0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not broadcast input array from shape (187,) into shape (1025,)
>>> gtfb_fft_hypercube[0, 0, 0, 1:] = amp_mod_cube[0, :, 0]
>>> 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-16 09:26:01

以下是完全非技术性的解释.

当你这样做时:

代码语言:javascript
复制
gtfb_fft_hypercube[0]

您已经“查找并提取”了gtfb_fft_hypercube的第一行,它是一个新的(42, 96, 1026)形状的“东西/实体”。

当你这样做时:

代码语言:javascript
复制
gtfb_fft_hypercube[0][0]

然后,您将获取这个新事物的第一个元素(通过切片)--它不再附加到原始的gtfb_fft_hypercube上,也不再是原始的一部分,它只是从类似列表的东西中分割出来的一部分。

用词可能比较容易,但原则是一样的:

代码语言:javascript
复制
sentence = ["The","cat","sat","on","the","mat"]

# Get first word - by looking it up in sentence
firstWord = sentence[0]            # firstWord = "The

# Get first letter of first word
firstLetter = firstWord[0]         # firstLetter = "T"

但是现在我们不能通过sentencefirstWord来指firstLetter,因为它是一种新的、分离的东西。

票数 2
EN

Stack Overflow用户

发布于 2022-02-16 16:40:03

每个[]都是一个__getitem__调用(在[]=的情况下是set )。

[:]本身什么也不做。用一个小数组来测试你自己。

[0][0][0][1:]等同于[0,0,0,1:] (虽然速度稍慢)。

[0][:][0]相当于[0,0],或者在这个3d情况下,[0,0,:]。从错误消息中可以看出这一点。它选择的是最后一个维度,而不是中间。

大多数情况下,在进行多维数组索引时,使用单操作语法[ , , ,]。花更多的时间阅读基本的numpy文档,特别是大索引页。

https://numpy.org/doc/stable/user/basics.indexing.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71138439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档