当数组包含字符串数据时,我遇到了numpy的一些看似微不足道的麻烦。我有以下代码:奇怪的行为初始化字符串数据的numpy数组
my_array = numpy.empty([1, 2], dtype = str)
my_array[0, 0] = "Cat"
my_array[0, 1] = "Apple"
现在,当我print my_array[0, :]
打印出来,我得到的回应是['C', 'A']
,这显然不是猫和苹果的预期输出。为什么是这样,我怎样才能得到正确的输出?
谢谢!
这是正确的,很高兴知道!谢谢 – Jim
一旦我更新列表中的一个元素(即'my_array [0] ='hello''),那么第一个元素是否仍然具有分配的“10个字符值”的内存?还是现在真的是一个“S5”对象?我假设不是,因为'numpy'数组的'dtype'必须在整个数组中保持一致? – Anonymous
@jphollowed:对,整个数组的大小是固定的,所以如果将它初始化为S10,即使存储的实际字符串较小,每个条目仍会占用10个字节。 – BrenBarn