我有一个100x2的数组D和一个100x1的数组c(条目为+/- 1),我试图绘制D中对应于c = 1的列的散点图。
我尝试了类似的操作:plt.scatter(D[0][c==1],D[1][c==1])
,但它抛出了IndexError: too many indices for array
我知道我已经使用列表理解或类似的东西。我对Python相当陌生,因此在格式方面苦苦挣扎。
非常感谢。
答案 0 :(得分:1)
概念
您可以使用 $('.btn-a').each(function () {
$(this).click(function () {
var $this = $(this).val();
if ($this == 'First') {
$(this).val('One');
} else if ($this == 'Second') {
$(this).val('Two');
}
})
});
});
从np.where
中选择数组D
中1
的行:
C
使用D = np.array([[0.25, 0.25], [0.75, 0.75]])
C = np.array([1, 0])
,我们只能选择np.where
中1
的行:
C
示例 根据您的实际数据:
>>> D[np.where(C==1)]
array([[0.25, 0.25]])
输出:
答案 1 :(得分:0)
您可以为此使用numpy(假设您有两个numpy数组,否则可以将它们转换为numpy数组):
import numpy as np
c_ones = np.where(c == 1) # Finds all indices where c == 1
d_0 = D[0][c_ones]
d_1 = D[1][c_ones]
然后您可以正常绘制d_0,d_1。
要在需要时转换列表,
C_np = np.asarray(c)
D_np = np.asarray(D)
然后在C_np上执行np.where
,如上所示。
这可以解决您的问题吗?