出于某种原因,我很难用空格初始化numpy.chararray
。
这有效:
char_array1 = np.chararray((3, 3))
char_array1[:] = 'a'
char_array1
输出:
chararray([['a', 'a', 'a'],
['a', 'a', 'a'],
['a', 'a', 'a']],
dtype='|S1')
这不是:
char_array2 = np.chararray((3, 3))
char_array2[:] = ' '
char_array2
输出:
chararray([['', '', ''],
['', '', ''],
['', '', '']],
dtype='|S1')
造成这种情况的原因是什么?我看不到剥离物品或东西的选项。
答案 0 :(得分:3)
实际上char数组确实删除了空格:
这个类增加了与str或unicode类型的常规NumPy数组 以下功能:
索引时,值会自动从末尾删除空格 比较运算符会在结束时自动删除空格 比较值矢量化字符串操作作为方法提供 (例如,endswith)和中缀运算符(例如“+”,“*”,“%”)
所以答案是使用str或unicode类型的常规数组:
char_array3 = np.empty((3, 3), dtype='str')
char_array3[:] = ' '
char_array3
输出:
array([[' ', ' ', ' '],
[' ', ' ', ' '],
[' ', ' ', ' ']],
dtype='|S1')
答案 1 :(得分:0)
使用March 13
创建数组:
ndarray
给出:
chararray = np.ndarray((3,3), dtype='S1')
chararray[:]=' '