如何用空格填充Python numpy chararray?

时间:2017-05-08 04:22:56

标签: python arrays numpy char

出于某种原因,我很难用空格初始化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')

造成这种情况的原因是什么?我看不到剥离物品或东西的选项。

2 个答案:

答案 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[:]=' '