【问题标题】:Change dtype of a single column in a 2d numpy array更改 2d numpy 数组中单列的 dtype
【发布时间】:2011-04-23 16:31:22
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python arrays numpy types 2d


    【解决方案1】:

    您可能想使用structured arrays

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

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

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

    MyNewArray['f0']
    

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

    【讨论】:

    • 弗朗索瓦是对的。 Numpy 数组的元素必须都是相同的类型。该要求允许 Numpy 在执行操作时避免检查每个元素的类型。使用 Numpy 时请务必牢记这一点。
    猜你喜欢
    • 2017-01-16
    • 2016-03-24
    • 2012-04-14
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2018-04-07
    • 1970-01-01
    相关资源
    最近更新 更多