堆叠numpy阵列?

2024-05-20 18:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用numpyhstack水平堆叠数组,但无法使其工作。取而代之的是,它都在一个列表中出现,而不是一个“矩阵式”的二维数组。在

import numpy as np
y = np.array([0,2,-6,4,1])
y_bool = y > 0
y_bool = [1 if l == True else 0 for l in y_bool] #convert to decimals for classification
y_range = range(0,len(y))
print y
print y_bool
print y_range
print np.hstack((y,y_bool,y_range))

打印此:

^{pr2}$

我怎样才能让最后一行变成这样:

[0 0 0
 2 1 1
-6 0 2
 4 1 3]

Tags: importnumpy列表forifasnp水平
2条回答

你也可以看看,如果水平方向的帮助足够大的话

vstack : Stack arrays in sequence vertically (row wise).
dstack : Stack arrays in sequence depth wise (along third axis).
concatenate : Join a sequence of arrays together.

编辑:第一个想法是vstack来做,但是如果np.vstack(...).T或{},那就应该是这样了。另一个“问题”是数组是1D的,你想让它们像2D一样,所以你可以:

^{pr2}$

如果其中一个变量是列表,np.asarray就在那里。np.newaxis使它们成为2D,以便更清楚地显示连接时发生的情况。在

如果要创建二维阵列,请执行以下操作:

print np.transpose(np.array((y, y_bool, y_range)))
# [[ 0  0  0]
#  [ 2  1  1]
#  [-6  0  2]
#  [ 4  1  3]
#  [ 1  1  4]]

相关问题 更多 >