更改二维numpy数组单列的数据类型
我正在用以下这行代码创建一个全是零的二维数组:
MyNewArray=zeros([4,12],float)
不过,第一列需要填入字符串类型的数据,而其他所有列则需要填入可以进行数学运算的数字数据。
我该如何修改上面的代码,让矩阵的第一列可以是字符串类型,而其他列保持为浮点数呢?
1 个回答
5
你可能想用结构化数组。
MyNewArray = zeros(12, dtype='S10,f4,f4,f4')
定义结构的方法有好几种,这里我定义了4个字段:一个是10个字符的文本,另外三个是浮点数(你也可以用float代替f4)。需要注意的是,数组的字符数必须指定,这是为了管理内存。你不能存储超过这个最大长度的字符串。
每个字段都有一个名字,这里使用的是默认的字段名f0到f3。例如,要获取第一列的所有内容(就是文本那一列):
MyNewArray['f0']
当然,你可以根据自己的需要修改字段名。