python 中的字符串 np 数组只取值的第一个字母

string np array in python only takes the first letter of a value

在下面的代码中,我想在 np 数组 capacity 中添加字符串“200”。

import numpy as np
capacity = np.repeat("", 6).reshape((6, 1))
capacity[0, 0] = "200"

然而 return 结果总是这样:

array([['2'],
       [''],
       [''],
       [''],
       [''],
       ['']], dtype='<U1')

有谁知道只取第一个字母(数字)的原因吗?以及如何解决问题?

那是因为在创建数组时指定了 dtype。 <U1 - 表示该元素是长度为 0 或 1 的字符。这就是为什么当您尝试添加任意长度的字符串时,只添加第一个字符。

因此,如果您想使用任何 len 字符串,则需要将 dtype 指定为对象:

>>> capacity = np.array(['' for x in range(6)], dtype='object')
>>> capacity[0] = "200"
>>> capacity
array(['200', '', '', '', '', ''], dtype=object)

祝你好运!