首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这种类型的索引是Numpy数组的转置吗?

这种类型的索引是Numpy数组的转置吗?
EN

Stack Overflow用户
提问于 2018-01-16 01:02:00
回答 2查看 134关注 0票数 0

我正在学习Python中的科学提案的某些教程,我遇到过这种使用索引的方法:

代码语言:javascript
复制
import numpy as np
l=np.array([8,5,2,3])
print(l[:,None])

此打印返回的内容为:

代码语言:javascript
复制
[[8]
 [5]
 [2]
 [3]]

这段代码的作用是显而易见的,我发现它对我的建议非常有用,但我从来没有想过要使用它,因为我不理解这种切片语法在说什么。

谁能给我解释一下这种切片的工作原理?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-01-16 01:09:24

:是所有元素的占位符,而Nonenp.newaxis,如果你想切片额外的形状,那么None会告诉numpy创建新的维度。

因此,编写示例并避免混淆的正确方法是:

代码语言:javascript
复制
import numpy as np
l = np.array([8, 5, 2, 3])
print(l[:, np.newaxis])
票数 0
EN

Stack Overflow用户

发布于 2018-01-16 01:10:59

不,这是将数组维度从1D提升到2D,准确地说是列向量。最常见的方法是使用None or np.newaxis

代码语言:javascript
复制
In [317]: l = np.array([8,5,2,3])

In [318]: l[:, np.newaxis]
Out[318]: 
array([[8],
       [5],
       [2],
       [3]])

In [319]: l.shape
Out[319]: (4,)

In [320]: l[:, np.newaxis].shape
Out[320]: (4, 1)

但是,您也可以使用以下命令将其转换为行向量:

代码语言:javascript
复制
In [321]: l[np.newaxis, :]
Out[321]: array([[8, 5, 2, 3]])

In [322]: (l[np.newaxis, :]).shape
Out[322]: (1, 4)

因此,:意味着在切片操作期间选择沿特定轴的数组中的所有元素。

有关详细信息,请参阅how np.newaxis work

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

https://stackoverflow.com/questions/48267586

复制
相关文章

相似问题

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