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

时间:2010-10-11 07:31:17

标签: python arrays numpy types 2d

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

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

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

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

1 个答案:

答案 0 :(得分:5)

您可能想要使用structured arrays

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

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

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

MyNewArray['f0']

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