这里是另一种方式来重现在Python2.7与numpy这个错误:
import numpy as np a = np.array([1,2,3]) b = np.array([4,5,6]) c = np.concatenate(a,b) #note the lack of tuple format for a and b print(c)
np.concatenate方法产生一个错误:
TypeError: only length-1 arrays can be converted to Python scalars
如果你阅读numpy.concatenate的文档,你会发现它期望一个numpy数组对象的元组。 所以用parens围绕这个variables修正了它:
import numpy as np a = np.array([1,2,3]) b = np.array([4,5,6]) c = np.concatenate((a,b)) #surround a and b with parens, packaging them as a tuple print(c)
然后它打印:
[1 2 3 4 5 6]
这里发生了什么?
这个错误是一个泡沫实现的例子 – 它是python guts在接收到一些意外的variablestypes时产生的那些神秘的低级错误之一,它不太确定该怎么做,所以它跑了,试图奇怪的东西,失败,并告诉你,你不能repromulate子空间响应者。
在更加合理的语言,如C ++或Java,它会告诉你:“你不能使用TypeA的预期TypeA”。 但是python对战士来说是最好的,失败了,然后把你带回一个神秘的错误。