python – 使用列表在NumPy中定义dtypes?
发布时间:2020-12-20 12:16:53 所属栏目:Python 来源:网络整理
导读:我刚刚遇到NumPy dtypes的问题.基本上我正在尝试创建一个如下所示的表(然后使用rec2csv保存它): name1 name2 name3 . . . name1 # # #name2 # # #name2 # # #... 在我尝试添加名称标签之前,已经计算了矩阵(中心的数值数组).我试过使用以下代码: dt = dtype
我刚刚遇到NumPy dtypes的问题.基本上我正在尝试创建一个如下所示的表(然后使用rec2csv保存它):
name1 name2 name3 . . . name1 # # # name2 # # # name2 # # # . . . 在我尝试添加名称标签之前,已经计算了矩阵(中心的数值数组).我试过使用以下代码: dt = dtype({'names' : tuple(blah),'formats' : tuple(fmt)}) ReadArray = array(tuplelist,dtype=dt) 其中tuplelist是一个行列表(即行[name1,#,#…]),blah是一个字符串列表(即名称,blah = [‘name1′,’name2’,… ])和fmt是格式列表,s(即fmt = [str,float,…]). 我得到的错误如下: Traceback (most recent call last): File "<stdin>",line 1,in <module> File "table_calc_try2.py",line 152,in table_calc_try2 dt = dtype({'names' : tuple(blah),'formats' : tuple(fmt)}) TypeError: data type not understood 有人可以帮忙吗? 谢谢! 解决方法
以下代码可能会有所帮助:
import numpy as np dt = np.dtype([('name1','|S10'),('name2','<f8')]) tuplelist=[ ('n1',1.2),('n2',3.4),] arr = np.array(tuplelist,dtype=dt) print(arr['name1']) # ['n1' 'n2'] print(arr['name2']) # [ 1.2 3.4] 您当前的问题是np.dtype要求格式说明符为numpy类型,例如’| S10’或’< f8'而不是Python类型,例如str或float.如果键入help(np.dtype),您将看到许多如何指定np.dtypes的示例. (我只提了几个.) 请注意,np.array需要一个元组列表.这是相当特别的. 列表列表引发TypeError:期望一个可读的缓冲区对象. A(元组的元组)或(元组的元组)引发ValueError:用序列设置数组元素. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |