NumPy数组的Python子设置输出有点混乱
二维numpy阵列NumPy数组的Python子设置输出有点混乱,python,python-3.x,numpy,Python,Python 3.x,Numpy,二维numpy阵列 import numpy as np z = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15]]) 选择第0行结束和第0列(输出为1D) 选择第0行结束和第0列(输出为2D) 子设置标准类似;但是,为什么输出格式不同(1D数组与2D数组)?我想差异在于选择的方式。选择范围时,将添加该轴上的标注,但当轴设置为常量时,将选择子标注数组。 这对于任何其他数组都是一样的,例如,请参见python列表
import numpy as np
z = np.array([[1, 2, 3, 4, 5],
[11, 12, 13, 14, 15]])
选择第0行结束和第0列(输出为1D)
选择第0行结束和第0列(输出为2D)
子设置标准类似;但是,为什么输出格式不同(1D数组与2D数组)?我想差异在于选择的方式。选择范围时,将添加该轴上的标注,但当轴设置为常量时,将选择子标注数组。 这对于任何其他数组都是一样的,例如,请参见python列表
>>> arr = ['a', 'b', 'c']
>>> arr[0]
'a'
>>> arr[:1]
['a']
>>>
在索引中使用冒号
:
时,您将获得一系列值(即使您只请求一个值)。换句话说,冒号意味着它将保持轴的维度。没有它,你只能得到所需索引的投影。谢谢,简。明白了。如果索引中有一个冒号,它将返回1D数组。如果索引中有2个冒号,它将返回2D数组。冒号:
创建一个切片
(一个定义良好的Python类)。描述使用切片的基本索引。注意,使用整数进行索引类似于i:i+1
slice,但它减少了维度。您可能需要多次重读该索引页面,并使用大量示例,然后才能对此有良好的感觉。熟悉列表和字符串索引会有所帮助,因为数组概括了这些想法。
In [2]: z[0:,:1]
Out[2]:
array([[ 1],
[11]])
>>> arr = ['a', 'b', 'c']
>>> arr[0]
'a'
>>> arr[:1]
['a']
>>>