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



在下面的代码中,我想添加字符串"200〃;在np阵列CCD_ 1中。

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

然而,返回的结果总是这样:

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)

祝你好运!

相关内容

最新更新