X = data[['x_1','x_2']].as_matrix()
y = data['y'].as_matrix()
X_pos = np.array([[X[i] for i in range(6)if y==1]])
y是一个numpy数组,其值为0和1。
有人可以帮我解释语法吗?
X_pos = np.array([np.array([X[i] for i in range(8)])[y[:8].astype('bool')]])
X_neg = np.array([[np.logical_not(y)]])
打印X_pos,
[[[ 1. 0.87142857 0.62458472]
[ 1. -0.02 -0.92358804]
[ 1. 0.36285714 -0.31893688]
[ 1. 0.88857143 -0.87043189]]]
当我打印X_neg时,我只得到
[[[ True True True True False False False False]]]
相反,我应该这样,
[[ 1. -0.80857143 0.8372093 ]
[ 1. 0.35714286 0.85049834]
[ 1. -0.75142857 -0.73089701]
[ 1. -0.3 0.12624585]]
答案 0 :(得分:1)
假设x和y是numpy数组,你的第三行有问题, 你可以这样重写它:
X_pos = np.array([np.array([X[i] for i in range(6)])[y[:6].astype('bool')]])
for fasle valuse(y)使用:
y_n = numpy.logical_not(y)
X_pos2 = np.array([np.array([X[i] for i in range(6)])[y_n[:6]]])
这是发生的事情:
您获取X
为numpy数组应用y
元素的布尔掩码。
将整个结果转换为numpy数组(出于某种原因),如问题所示..