Arrays 在Python2.x中访问数组列表中的元素
考虑使用numpy.genfromtxt()提取的以下数据集:Arrays 在Python2.x中访问数组列表中的元素,arrays,python-2.7,list,Arrays,Python 2.7,List,考虑使用numpy.genfromtxt()提取的以下数据集: 问题是数组的内容是元组。因此,当您请求数据[:2][0]时,它返回元组列表中的第0项,而不是每个元组的第0项。使用以下代码段: output = [] for i in range(2): output += data[:2][i][0] 希望我能帮上忙。这是一个结构化数组,1d包含许多字段。字段按名称访问,而不是按“列”编号访问: In [618]: data Out[618]: array([(b'T', 2, 8
问题是数组的内容是元组。因此,当您请求
数据[:2][0]
时,它返回元组列表中的第0项,而不是每个元组的第0项。使用以下代码段:
output = []
for i in range(2):
output += data[:2][i][0]
希望我能帮上忙。这是一个结构化数组,1d包含许多字段。字段按名称访问,而不是按“列”编号访问:
In [618]: data
Out[618]:
array([(b'T', 2, 8, 3, 5, 1, 8, 13, 0, 6, 6, 10, 8, 0, 8, 0, 8),
(b'I', 5, 12, 3, 7, 2, 10, 5, 5, 4, 13, 3, 9, 2, 8, 4, 10),
(b'D', 4, 11, 6, 8, 6, 10, 6, 2, 6, 10, 3, 7, 3, 7, 3, 9)],
dtype=[('f0', 'S1'), ('f1', '<i8'), ('f2', '<i8'), ('f3', '<i8'), ('f4', '<i8'), ('f5', '<i8'), ('f6', '<i8'), ('f7', '<i8'), ('f8', '<i8'), ('f9', '<i8'), ('f10', '<i8'), ('f11', '<i8'), ('f12', '<i8'), ('f13', '<i8'), ('f14', '<i8'), ('f15', '<i8'), ('f16', '<i8')])
一个字段,一个数组:
In [620]: data['f0']
Out[620]:
array([b'T', b'I', b'D'],
dtype='|S1')
几个字段,返回另一个结构化数组(如下一个问题所示)
[621]中的:数据[['f1','f2']]
出[621]:
数组([(2,8)、(5,12)、(4,11)],
dtype=[('f1',它们显示为元组,但实际上是结构化数组的记录。您的输出将是一个类似[84,73,68]
的列表。这些是ByTestRing的数字字节值,[b'T',b'I',b'D']
。哦,我明白了……嗯,我认为将字节转换为可用数据并不困难。无论如何,谢谢你的提示!
In [618]: data
Out[618]:
array([(b'T', 2, 8, 3, 5, 1, 8, 13, 0, 6, 6, 10, 8, 0, 8, 0, 8),
(b'I', 5, 12, 3, 7, 2, 10, 5, 5, 4, 13, 3, 9, 2, 8, 4, 10),
(b'D', 4, 11, 6, 8, 6, 10, 6, 2, 6, 10, 3, 7, 3, 7, 3, 9)],
dtype=[('f0', 'S1'), ('f1', '<i8'), ('f2', '<i8'), ('f3', '<i8'), ('f4', '<i8'), ('f5', '<i8'), ('f6', '<i8'), ('f7', '<i8'), ('f8', '<i8'), ('f9', '<i8'), ('f10', '<i8'), ('f11', '<i8'), ('f12', '<i8'), ('f13', '<i8'), ('f14', '<i8'), ('f15', '<i8'), ('f16', '<i8')])
In [619]: data[0]
Out[619]: (b'T', 2, 8, 3, 5, 1, 8, 13, 0, 6, 6, 10, 8, 0, 8, 0, 8)
In [620]: data['f0']
Out[620]:
array([b'T', b'I', b'D'],
dtype='|S1')
In [621]: data[['f1','f2']]
Out[621]:
array([(2, 8), (5, 12), (4, 11)],
dtype=[('f1', '<i8'), ('f2', '<i8')])