以下代码来自Numpy 1.4.1手册numpy.char
import numpy as np
charar = np.chararray((3, 3))
charar[:, :] = 'abc'
print charar
根据手册,这应该输出
chararray([['a', 'a', 'a'],
['a', 'a', 'a'],
['a', 'a', 'a']],
dtype='|S1')
相反,我得到
[['\xd8' '3' 'U']
['\xb7' '\x18' '\xc2']
['\xbd' '' '\x10']]
这看起来像未初始化的值。有没有人有任何想法在这里发生了什么?我正在使用numpy软件包进行Debian挤压,我发现它已经过时了,但是我遇到了一些问题,从不稳定的情况下向后移植1.6软件包。
更新:我现在已经从不稳定的情况下向后移植了1.6软件包,减去了由于某种原因无法构建的文档。我得到完全相同的结果。我想我会继续向numpy项目报告。
答案 0 :(得分:2)
我的机器上没有安装numpy 1.4,但当然如果我运行你编写的代码,我会得到一个与手册不符的类似答案。应该注意的是,在numpy手册的最新版本中,示例已经改变:
>>> charar = np.chararray((3, 3))
>>> charar[:] = 'a'
>>> charar
chararray([['a', 'a', 'a'],
['a', 'a', 'a'],
['a', 'a', 'a']],
dtype='|S1')
请参阅http://docs.scipy.org/doc/numpy/reference/generated/numpy.chararray.html
另外,np.chararray
post v1.4仅包含在numpy中以便与Numarray向后兼容,并且手册指出它不应该用于新开发。
希望有所帮助。