更改二维numpy数组单列的数据类型

5 投票
1 回答
8677 浏览
提问于 2025-04-16 05:18

我正在用以下这行代码创建一个全是零的二维数组:

MyNewArray=zeros([4,12],float)

不过,第一列需要填入字符串类型的数据,而其他所有列则需要填入可以进行数学运算的数字数据。

我该如何修改上面的代码,让矩阵的第一列可以是字符串类型,而其他列保持为浮点数呢?

1 个回答

5

你可能想用结构化数组

MyNewArray = zeros(12, dtype='S10,f4,f4,f4')

定义结构的方法有好几种,这里我定义了4个字段:一个是10个字符的文本,另外三个是浮点数(你也可以用float代替f4)。需要注意的是,数组的字符数必须指定,这是为了管理内存。你不能存储超过这个最大长度的字符串。

每个字段都有一个名字,这里使用的是默认的字段名f0到f3。例如,要获取第一列的所有内容(就是文本那一列):

MyNewArray['f0']

当然,你可以根据自己的需要修改字段名。

撰写回答