我试图使用np.append追加到一个numpy数组。
例如,
a = np.array([1])
np.append(a, [2])
这个代码在终端中运行良好(结果是数组([1,2])),但是当我运行包含相同代码的.py文件时它不会工作。当我打印后添加[2]时,它仍然是[1]。
以下是我的test.py文件的代码:
import numpy as np
a = np.array([1])
print(a)
np.append(a, [2])
print(a)
这是使用终端运行它的结果:
python test.py
[1]
[1]
错误的结果没有错误。 有谁知道可能是什么问题?
答案 0 :(得分:3)
import numpy as np
a = np.array([1])
print(a)
a = np.append(a, [2])
print(a)
numpy.append(arr, values, axis=None)
,其中arr
的值会附加到此数组的副本(http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.append.html)。
在终端中,您的代码有效,因为np.append(a,[2])
变为print np.append(a,[2])
。
答案 1 :(得分:2)
您确定终端中使用的numpy版本和.py文件的执行情况相同吗?根据{{3}} np.append在numpy 1.10.0中没有到位,因此与你从python test.py
得到的行为一致
要比较版本,您可以打印并比较numpy.__version__
答案 2 :(得分:1)
你误解了终端正在做什么。在终端中编写以下内容时:
>>> a = np.array([1])
>>> np.append(a, [2])
array([1, 2])
你显然没有要求它打印,但确实如此。所以终端必须插入一个print语句。终端实际上正在运行:
a = np.array([1])
print repr(np.append(a, [2]))
也就是说,所有未返回None
的表达式都包含在print repr(...)
当然你的代码没有插入相同的print语句,所以当然它会给出不同的结果