首页 > 解决方案 > 切片 NumPy 数组如何影响输出

问题描述

有人可以解释为什么当您使用以下两种略有不同的切片技术从 NumPy 数组中提取相同的数据时会得到不同的数组形状吗?

In [1]:import numpy as np
In [2]: grades = np.array([[93, 95],
    ...:                   [84, 100],
    ...:                   [99, 87]])

In [3]: A = grades[:,0]
In [4]: A
Out[4]: array([93, 84, 99])

In[5]: B = grades[:, :1]
In[6]: B
Out[6]: array([[93],
               [84],
               [99]])

In [7]: A.shape
Out[7]: (3,)

In [8]: B.shape
Out[8]: (3,1)

为什么 Python 在使用Grades[0,:]切片引用时创建一维数组,但在使用Grades[:, :1]时创建一个 3x1 二维数组?

谢谢

标签: arraysnumpyindexingoutputnumpy-slicing

解决方案


推荐阅读