我有一个看起来像这样的元组列表:
>>> y
[(0,1,2,3,4,...,10000), ('a', 'b', 'c', 'd', ...), (3.2, 4.1, 9.2, 12., ...), ]
etc.y
有 7 个元组,每个元组有 10,000 个值。给定元组的所有 10,000 个值都是相同的 dtype,我也有这些 dtype 的列表:
>>>dt
[('0', dtype('int64')), ('1', dtype('<U')), ('2', dtype('<U')), ('3', dtype('int64')), ('4', dtype('<U')), ('5', dtype('float64')), ('6', dtype('<U'))]
我的意图是做类似的事情x = np.array(y, dtype=dt)
,但是当我这样做时,我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not assign tuple of length 10000 to structure with 7 fields.
我知道这是因为 dtype 说元组中的第一个值必须是 int64,第二个值必须是字符串,依此类推,而对于具有 10,000 个值的元组,我只有 7 个 dtype。
我如何与代码沟通,我的意思是第一个元组的所有值都是 int64s,第二个元组的所有值都是字符串,等等?
我也尝试过y
成为列表列表而不是元组列表:
>>>y
[[0,1,2,3,4,...,10000], ['a', 'b', 'c', 'd', ...), ...]
等,由于与上述相同的原因,我收到错误:
>>> x = np.array(y, dtype=dt)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'Supplier#000000001'
任何帮助表示赞赏!
编辑:我的目标是让 x 成为一个 numpy 数组。