arrays - 切片numpy arrayx时形状改变
问题描述
我以下面的数组为例:
lights = np.array([ [1,0,1], [0,1,1], [0,0,1], [1,1,1] ])
lights[0]
返回一个形状:(3,)
lights[0:1]
返回一个形状:(1, 3)
在这种情况下,我不明白 numpy 的逻辑是什么。鉴于切片是独占的,[0:1] 类似于 [0]。那么,为什么它会影响阵列的形状呢?
解决方案
https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#basic-slicing-and-indexing
整数 i 返回与 i:i+1 相同的值,只是返回对象的维数减 1。特别是,具有第 p 个整数的选择元组(以及所有其他条目:)返回对应维度为 N - 1 的子数组。如果 N = 1,则返回的对象是数组标量。这些对象在标量中进行了解释。
这种numpy
标量与切片的索引与 Python 的列表索引一致:
In [119]: alist = [ [1,0,1], [0,1,1], [0,0,1], [1,1,1] ]
In [120]: alist[0]
Out[120]: [1, 0, 1] # one element of alist
In [121]: alist[0:1]
Out[121]: [[1, 0, 1]] # a list with one element
In [122]: alist[0][1] # nested selection of a number
Out[122]: 0
数组等价物,匹配使用 []:
In [123]: arr = np.array(alist)
In [124]: arr
Out[124]:
array([[1, 0, 1],
[0, 1, 1],
[0, 0, 1],
[1, 1, 1]])
In [125]: arr[0]
Out[125]: array([1, 0, 1])
In [126]: arr[0:1]
Out[126]: array([[1, 0, 1]])
In [127]: arr[0,1]
Out[127]: 0
numpy
还可以使用元组、列表和数组进行索引。
推荐阅读
- javascript - Why is my carousel with an empty item at the end?
- node.js - 使用 ssh 和 simple-ssh npm 下载文件
- php - Wordpress 更新主题后返回错误 500
- sinon - 如何使用 sinon 和存根(nodeJS)测试包含繁重逻辑的路由器代码
- graphql - 如何使用特定的编程语言创建 Graphql 实现?
- typescript - 如何键入模型以充当环回中的对象?
- python - 文本小部件作为列表
- python - 如何配置 PuLP 以调用 GLPK 求解器
- python - [FORKING]Python 正则表达式 - Re.Sub 和 Re.Findall 有趣的挑战
- qgis - 有没有办法将某一年的瓦片地图(如谷歌或必应)加载到 Qgis 中?