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

Python 更改二维numpy数组中单个列的数据类型,python,arrays,numpy,types,2d,Python,Arrays,Numpy,Types,2d,我正在使用以下代码行创建一个满是零的二维数组: MyNewArray=zeros([4,12],float) 但是,第一列将需要填充字符串类型的文本数据,而所有其他列将需要填充可以进行数学操作的数字数据 如何编辑上面的代码,使矩阵中的第一列可以是字符串数据类型,同时将所有其他列保持为浮点型?您可能需要使用 有几种定义结构的方法,在这里我定义了4个字段:一个10个字符的文本和三个浮点(您可以编写浮点而不是f4)。 需要注意的是,出于阵列内存管理的原因,必须指定阵列的字符数。您将无法存储超过此最大

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

MyNewArray=zeros([4,12],float)
但是,第一列将需要填充字符串类型的文本数据,而所有其他列将需要填充可以进行数学操作的数字数据

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

您可能需要使用

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

每个字段都由字段名引用,在这种情况下,将使用默认字段名f0到f3。例如,要获取整个第一列(文本列):


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

François是对的。Numpy数组的元素必须都是相同的类型。该要求允许Numpy在执行操作时避免检查每个元素上的类型。在使用Numpy时记住这一点很重要。
MyNewArray = zeros(12, dtype='S10,f4,f4,f4')
MyNewArray['f0']