|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import numpy as np
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
data = np.random.randn(7, 4)
names
data
输出
array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'], dtype='<U4')
array([[-0.2047, 0.4789, -0.5194, -0.5557],
[ 1.9658, 1.3934, 0.0929, 0.2817],
[ 0.769 , 1.2464, 1.0072, -1.2962],
[ 0.275 , 0.2289, 1.3529, 0.8864],
[-2.0016, -0.3718, 1.669 , -0.4386],
[-0.5397, 0.477 , 3.2489, -1.0212],
[-0.5771, 0.1241, 0.3026, 0.5238]])
输入
data[names == 'Bob', 2:]#得到一个二维数组
data[names == 'Bob', 3]#为什么没有得到二维
输出
array([[-0.5194, -0.5557],
[ 1.3529, 0.8864]])
array([-0.5557, 0.8864])
输入
data[names == 'Bob', [3]] # AI提供的方法,仍然是一维
输出
array([-0.5557, 0.8864])
在 NumPy 中,当你对一个二维数组进行索引操作时,索引的方式会影响到你得到的是一维数组还是二维数组。具体来说:
1. 使用单个索引:
如果你对一个二维数组使用单个索引,比如 data[2],你将会得到一个一维数组,这一维数组对应的是在第3行的所有元素。
2. 使用切片:
如果你希望得到一个二维数组,可以使用切片。例如,使用 data[2:3],你将得到一个二维数组,其中包含第三行的数据。这里 2:3 保留了二维结构。
下面是一个简单的例子来说明这两种情况:
import numpy as np
# 创建一个7行4列的随机数组
data = np.random.randn(7, 4)
# 单个索引,得到一维数组(第三行)
row_as_1d = data[2]
print("一维数组:", row_as_1d)
print("形状:", row_as_1d.shape)
# 使用切片,得到二维数组(第三行)
row_as_2d = data[2:3]
print("二维数组:", row_as_2d)
print("形状:", row_as_2d.shape)
这样处理,能够更好地控制得到的是一维还是二维数组。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|