更改2d numpy数组中单个列的dtype

Med*_*ath 5 python arrays types 2d numpy

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

MyNewArray=zeros([4,12],float)
Run Code Online (Sandbox Code Playgroud)

然而,第一列将需要与串类型的文本数据来填充,而所有其他列将需要与在数学上被操纵的数值数据来填充.

如何修改上面的代码,以便在矩阵中的第一列可以同时保持所有其他列作为浮动字符串数据类型的?

Fra*_*ois 5

您可能想要使用结构化数组

MyNewArray = zeros(12, dtype='S10,f4,f4,f4')
Run Code Online (Sandbox Code Playgroud)

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

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

MyNewArray['f0']
Run Code Online (Sandbox Code Playgroud)

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