手动的简单numpy示例无法按预期工作

时间:2011-10-08 11:31:16

标签: numpy

以下代码来自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项目报告。

1 个答案:

答案 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向后兼容,并且手册指出它不应该用于新开发。

希望有所帮助。