使用给定的示例here:
dt = np.dtype([('name', np.unicode_, 16), ('grades', np.float64, (2,))])
x = np.array([('Sarah', (8.0, 7.0)), ('John', (6.0, 7.0))], dtype=dt)
如何仅访问“成绩”数组中位置0的成绩?
由于我对特定人的成绩有歧义,即因为我可以写作
>>> x['grades'][0]
>>> [8.0 7.0]
或
>>> x[0]['grades']
>>> [8.0 7.0]
这两个都将给出相同的结果,我看不到如何只能访问位置0的成绩,但是对于所有人员来说,都没有任何办法。有办法吗?
我不会写
>>> x[0]['grades'][0]
>>> 8.0
或类似的组合
>>> x[:]['grades'][0]
>>> x[0]['grades'][:]
在同一条注释上:为什么“成绩”字段的形状声明为“(2,)”,而“(2)”,“ [[2,]”,“ [2]”和“ 2”似乎都给出了相同的结果?
答案 0 :(得分:2)
这将为每个人打印rows: 2
slidesPerRow: 1
的一年级:
grades
或者:
print (x[:]['grades'][:,0])
输出:
print(x['grades'][:,0])
说明:
[8. 6.]
(或x[:]['grades']
)产生2d数组。实际上,它会生成一个x['grades']
值的1d数组,但是grade
的每个值本身就是一个1d数组。最终结果,一个二维数组:
grade
从这个2d数组中,我们希望仅从每个年级获得所有年级的第一年级,因此我们使用索引[[8. 7.]
[6. 7.]]