【发布时间】:2018-06-06 14:13:19
【问题描述】:
我有 2 个 Numpy 数组,第一个有 210 行,第二个有 30 行,并且都包含 4 列,我想在两个仅包含 0 或 1 的数组的第 4 列上应用条件/过滤器。 因此,我想将第一个数组的 0 检测为 Train_Safe,将第一个数组的 1 个检测为 Train_Cracked,将第 2 个数组的 0 个检测为 Test_Safe,将第 2 个数组的 1 个检测为 Test_Cracked,并使用 Matplotlib 在 3D 散点图上绘制这些值,我尝试使用此代码:
for i in X_train_merge[0:, 3]:
if i == 0:
x_vals_train_0 = X_train_merge[0:, 0:1]
y_vals_train_0 = X_train_merge[0:, 1:2]
z_vals_train_0 = X_train_merge[0:, 2:3]
elif i == 1:
x_vals_train_1 = X_train_merge[0:, 0:1]
y_vals_train_1 = X_train_merge[0:, 1:2]
z_vals_train_1 = X_train_merge[0:, 2:3]
for j in X_test_merge[0:, 3]:
if j == 0:
x_vals_test_0 = X_test_merge[0:, 0:1]
y_vals_test_0 = X_test_merge[0:, 1:2]
z_vals_test_0 = X_test_merge[0:, 2:3]
elif j == 1:
x_vals_test_1 = X_test_merge[0:, 0:1]
y_vals_test_1 = X_test_merge[0:, 1:2]
z_vals_test_1 = X_test_merge[0:, 2:3]
ax.scatter(x_vals_train_0, y_vals_train_0, z_vals_train_0, c='g', marker='o', label="Train_Safe")
ax.scatter(x_vals_train_1, y_vals_train_1, z_vals_train_1, c='b', marker='o', label="Train_Cracked")
ax.scatter(x_vals_test_0, y_vals_test_0, z_vals_test_0, c='black', marker='*', label="Test_Safe")
ax.scatter(x_vals_test_1, y_vals_test_1, z_vals_test_1, c='brown', marker='*', label="Test_Cracked")
它绘制/给出所有数据点,而不将其分配/划分为 Train_Safe、Train_Cracked、Test_Safe 和 Test_Cracked。此任务的任何建议/解决方案。提前致谢。
【问题讨论】:
标签: python numpy matplotlib machine-learning