我很难在保持正确形状的同时将x_
数组追加到x
上。我尝试了vstack
,但它给了我一个错误。axis=0
似乎没有做任何它应该做的事情。我想要一个维数为(:,len(x_)
)的数组。在
编辑:
post末尾的代码给出了以下形状的数组x
array([3, 0, 2, 1, 0], dtype=int32)
我试过了:
^{pr2}$但是给出了:
array([3, 0, 2, 1, 0, 5, 4, 6, 7, 8])
但是,我想:
array([[3, 0, 2, 1, 0],
[5, 4, 6, 7, 8]])
我试过vstack(x,x),但得到:
x = np.vstack(x, x_)
TypeError: vstack() takes 1 positional argument but 2 were given
一。在
for k in range(2,9):
temp_ = (2*k)+1
x = np.zeros(shape=(1,temp_))
y = []
for i in range(k, len(number_list)-k-1):
newk = k
x_ = []
while newk >= -k:
x_.append(name[i-newk])
newk-=1
le = preprocessing.LabelEncoder()
le.fit(x_)
x_ = le.transform(x_)
x = np.append(x, x_ , axis=0)
y.append(residue_area[i])
但您可以使用^{} :
但通常情况下,定期追加或堆栈数组不是一个好主意(因为实际上效率很低)。通常最好创建一个最终形状的数组并插入其中:
^{pr2}$np.append
必须废除,它扭曲了太多初学者的思维。在np.concatenate
和所有的np.?stack
都将一个列表作为第一个参数。唯一的另一个参数是axis关键字。np.append
通过用2个参数替换该列表来更改该约定,然后对其进行调整,放入一个列表并调用concatenate。除非你阅读了源代码,否则你不知道它首先是如何修改维度的。在打开一个交互式会话,并使用
np.concatenate
直到您理解了维度必须如何匹配。然后重新考虑这个问题。在编辑:拼写错误
concatenate
而不是concatenante
相关问题 更多 >
编程相关推荐