gpt4 book ai didi

PYTHON/NUMPY : How to assign various data types to the data type object numpy. dtype() 在循环中

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:21 25 4
gpt4 key购买 nike

我想使用 numpy.dtype() 对象构造一个具有各种不同数据类型的 numpy 数组。

我有一个字典“mydict”,其中存储了有关数据的所有信息,我想用它创建一个数据类型对象dt。 “mydict”是根据我选择的属性动态创建的,并且数据类型也与该属性相对应!

import numpy as np

mydict={'name0': 'mass', 'name1': 'position', 'name2': 'ID',
'format0': np.float32, 'format1': np.int8, 'format2': np.uint64}

数据类型对象dt应该如下所示

dt = np.dtype([('mass', np.float32), ('position', np.int8), ('ID', np.uint64)])

我的问题是如何创建 dt 而无需手动构造/将其写入代码中?

主要问题是我不知道如何将 np.dtype() 附加到另一个“名称”和“格式”组合条目,或者是否可能......

我正在使用 dt 然后将我的数据读入像这样的 numpy 数组!

data_array=np.array((nr_rows, nr_cols)), dtype=dt)

我尝试了字典理解、列表和字典的某些尝试,但找不到正确的方法。

最佳答案

In [209]: dd={'name0': 'mass', 'name1': 'position', 'name2': 'ID', 
...: 'format0': np.float32, 'format1': np.int8, 'format2': np.uint64}

In [213]: [(dd['name%s'%i],dd['format%s'%i]) for i in range(3)]
Out[213]: [('mass', numpy.float32), ('position', numpy.int8), ('ID', numpy.uint64)]

In [214]: dt=np.dtype([(dd['name%s'%i],dd['format%s'%i]) for i in range(3)])
In [216]: arr = np.zeros((2,), dt)
In [217]: arr
Out[217]:
array([( 0., 0, 0), ( 0., 0, 0)],
dtype=[('mass', '<f4'), ('position', 'i1'), ('ID', '<u8')])

关于PYTHON/NUMPY : How to assign various data types to the data type object numpy. dtype() 在循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42655129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com