我正试图连接两个numpy数组,但我得到了这个错误。有人能告诉我这到底是什么意思吗?
Import numpy as np
allValues = np.arange(-1, 1, 0.5)
tmp = np.concatenate(allValues, np.array([30], float))
然后我得到了
ValueError: 0-d arrays can't be concatenated
如果我做了
tmp = np.concatenate(allValues, np.array([50], float))
没有错误消息,但tmp变量也不反映连接。
得到这个错误的另一种方法是让两个不同的numpy对象。。。类型?
当我尝试
np.concatenate([A,B])
时出现此错误当我运行
np.concatenate([B,A])
时ValueError: all the input arrays must have same number of dimensions
正如@mithunpaul提到的,我的类型是关闭的:A是44279x204的数组,B是A
<44279x12 sparse matrix of type '<class 'numpy.float64'>' with 88558 stored elements in Compressed Sparse Row format>)
所以这就是错误发生的原因。但还不知道怎么解决。
您需要将要连接的数组放入参数中的序列(通常是元组或列表)。
检查documentation中的
np.concatenate
。注意,第一个参数是数组的序列(例如list、tuple)。它不把它们作为单独的参数。据我所知,这个API由所有numpy的连接函数共享:^{} 、^{} 、^{} 、^{} 和^{} 都使用一个主参数,该参数应该是一些数组序列。
得到这个特殊错误的原因是数组也是序列。但这意味着
concatenate
将allValues
解释为要连接的数组序列。然而,allValues
的每个元素都是一个浮点数,而不是一个数组,因此被解释为一个零维数组。正如错误所说,这些“数组”不能连接。第二个参数作为
concatenate
的第二个(可选)参数,该参数是要连接的轴。这只起作用,因为第二个参数中有一个元素,它可以被转换为整数,因此是一个有效值。如果在第二个参数中放入一个包含更多元素的数组,则会出现不同的错误:还要确保连接两个numpy数组。我将一个python数组与一个numpy数组连接起来,它给出了相同的错误:
我花了一些时间才弄清楚,因为stackoverflow中的所有答案都假设您有两个numpy数组。 相当愚蠢但容易被忽视的错误。因此张贴只是为了以防万一这有助于某人。
下面是使用np.asarray转换现有python数组的链接 或 create np arrays,如果有帮助的话。
相关问题 更多 >
编程相关推荐