Python 具有两种不同数据类型的结构化numpy数组

Python 具有两种不同数据类型的结构化numpy数组,python,numpy,structured-array,Python,Numpy,Structured Array,我将一个csv文件导入到一个numpy数组中,我需要将该数组转换为一个结构化数组,其中只有第一列作为dtype字符串,其余47列作为float。 如何在单个操作中为其他47列定义数据类型?是否必须逐列指定数据类型 提前感谢您可以将源文件作为结构化的数组读取 假设输入文件包含: 一个字符串字段,命名为Id 只需四个浮点字段,命名为F1、F2等 因此,它的内容是: ABCD,160.72,180.21,260.13,451.48 EFGH,252.42,132.21,150.11,612.56

我将一个csv文件导入到一个numpy数组中,我需要将该数组转换为一个结构化数组,其中只有第一列作为dtype字符串,其余47列作为float。 如何在单个操作中为其他47列定义数据类型?是否必须逐列指定数据类型


提前感谢

您可以将源文件作为结构化的数组读取

假设输入文件包含:

  • 一个字符串字段,命名为Id
  • 只需四个浮点字段,命名为F1、F2等
因此,它的内容是:

ABCD,160.72,180.21,260.13,451.48
EFGH,252.42,132.21,150.11,612.56
IJKL,541.77,455.21,268.76,543.81
要读取这样的文件,可以使用np.loadtxt方法,将数据类型传递为 可生成的结构化类型(定义列表) e、 g.在列表中:

nFloats = 4
a = np.loadtxt('Input.csv', delimiter=',',
    dtype=[('Id', 'U10')] + [( f'F{i+1}', '<f4' ) for i in range(nFloats)])
nFloats=4
a=np.loadtxt('Input.csv',分隔符=',',

dtype=[('Id','U10')]+[(f'f{i+1}','是否需要所有表的numpy数组?是否可以将每一列存储在单独的表中(然后可能从列数组创建列表)?可能重复@JanStránský谢谢你的回复。是的,我需要数组中的所有列。第一列是带有重复项的标识符,其他47列是浮点数,我需要运行复杂的计算。你考虑过使用熊猫来存储混合数据类型数据吗?@FBruzzesi-我必须使用numpy,除非我可以使用Pandas运行deap进化算法
array([('ABCD', 160.72, 180.21, 260.13, 451.48),
       ('EFGH', 252.42, 132.21, 150.11, 612.56),
       ('IJKL', 541.77, 455.21, 268.76, 543.81)],
      dtype=[('Id', '<U10'), ('F1', '<f4'), ('F2', '<f4'), ('F3', '<f4'), ('F4', '<f4')])