我正在使用以下代码行创建一个充满零的二维数组:

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

但是,第一列将需要填充字符串类型的文本数据,而所有其他列将需要填充可以进行数学处理的数值数据。

如何编辑上面的代码,以便矩阵中的第一列可以是字符串数据类型,而其他所有列都保持浮点数?

最佳答案

您可能要使用structured arrays

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

有几种定义结构的方法,这里我定义了4个字段:一个包含10个字符的文本和三个浮点数(您可以写float而不是f4)。
重要的是要注意,出于阵列内存管理的原因,必须指定阵列的字符数。您将无法存储超过此最大长度的字符串。

每个字段都由一个字段名称引用,在这种情况下,将使用默认的字段名称f0至f3。例如,要获得整个第一栏(文本栏):
MyNewArray['f0']

当然,您可以根据需要修改字段名称。

关于python - 更改2d numpy数组中单列的dtype,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3904289/

10-12 18:33