Python 在尝试合并两个Aray时,我在numpy中遇到了一个类型问题
当我尝试:Python 在尝试合并两个Aray时,我在numpy中遇到了一个类型问题,python,python-3.x,numpy,Python,Python 3.x,Numpy,当我尝试: data_f = hstack([data,Ki]) 我得到: TypeError:“列表”对象不可调用 我徒劳地“搜索”了一下,结果一无所获。我错过了什么 我已成功创建了要合并的两个阵列: data = [] data = np.vstack([data1,data2,data3,data4,data5,data6,data7,data8,data9,data10]) A = [] A = data[:,1] Ki = [] Ki = np.exp((1000*A)/(Rca
data_f = hstack([data,Ki])
我得到:
TypeError:“列表”对象不可调用
我徒劳地“搜索”了一下,结果一无所获。我错过了什么
我已成功创建了要合并的两个阵列:
data = []
data = np.vstack([data1,data2,data3,data4,data5,data6,data7,data8,data9,data10])
A = []
A = data[:,1]
Ki = []
Ki = np.exp((1000*A)/(Rcal*Tk))
name_s = name+'_Ki'
np.savetxt(name_s,[A],newline='\n',delimiter = ' ')
data_f = []
hstack = []
data_f = hstack([data,Ki])
请,
他们清楚地解释了hstack()
想要
形状相似的数据数组的元组。
你没有提供这些
仔细检查数据
和Ki
,
以确保它们具有相似的。形状
编辑
下面是调用hstack()
的示例:
请注意,仅将a
设置为np.array(范围(3))
将不起作用。
要了解原因,请查看.shape
这些表达式中的一个。一个函数是
可调用的
,并且用()
调用
,就像你用hstack(…)
做的那样。但是您定义了一个列表hstack=[]
,所有这些x=[]
语句在Python中都是不必要的。仅当您进入modifyx
时使用该选项,如使用x.append('foobar')
。在Python中,变量不需要“初始化”。只需分配真正有用的对象,就像分配data=np.vstack(…)
一样。您为什么使用np.vstack
而不是np.hstack
?谢谢您的回复。我使用vstack成功地创建了数据结构。问题在于使用hstack(最后一行是上面的代码片段)时,我将最后一行更改为读取data_f=np.hstack([data,K1])。现在的错误是“ValueError:所有输入数组必须具有相同数量的维度”。那么两个输入的维度是什么,data
和K1
?当你在尺寸和形状方面出错时,首先要做的是检查(打印)数组的形状。谢谢你的博学解释。我最初的问题是数据是维度为(100,40)的float64数组,Ki是维度为(100,1)的float64数组.也许在我80年的阅读生涯中,我不明白参考文献在说什么。我真的不知道这个问题的解决方案可能是什么。也许你本地的C:drive上有这样的文字,但我看不懂。当然,你在问题中没有这样说。好吧,那是一个满脸通红的人!列堆栈解决了感谢numpy-user-1.19.1.pdf解决了这个问题。
>>> a = np.array(range(3)).reshape(3, 1)
>>> b = np.array(range(12)).reshape(3, 4)
>>> a.shape, b.shape
((3, 1), (3, 4))
>>> np.hstack((a, b))
array([[ 0, 0, 1, 2, 3],
[ 1, 4, 5, 6, 7],
[ 2, 8, 9, 10, 11]])