在2D的numpy数组中改变单个列的数据类型。

5

我正在使用以下代码创建一个全是0的2D数组:

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

然而,第一列将需要填充字符串类型的文本数据,而所有其他列将需要填充可以进行数学运算的数字数据。
如何编辑上面的代码,以便矩阵中的第一列可以是字符串数据类型,同时保持所有其他列为浮点数?
1个回答

5
您可能想使用结构化数组
MyNewArray = zeros(12, dtype='S10,f4,f4,f4')

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

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

MyNewArray['f0']

当然,您可以根据自己的需求修改字段名称。

弗朗索瓦是正确的。 Numpy 数组的元素必须都是相同类型。该要求允许 Numpy 在执行操作时避免对每个元素检查类型。在使用 Numpy 时要牢记这一点很重要。 - AFoglia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接