gpt4 book ai didi

python - 在 python 上绘制带有颜色的特征时获取 `ValueError`

转载 作者:行者123 更新时间:2023-12-05 05:42:57 25 4
gpt4 key购买 nike

我有以下 data需要使用最小二乘法对其进行线性分类。我想可视化我的数据,然后用颜色绘制特征,但在分配颜色 colour_cond 时出现以下错误。

ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

请注意,data_t 由 1 和 0 组成。

import numpy as np
import matplotlib.pyplot as plt
import glob
from scipy.io import loadmat

%matplotlib inline

data = glob.glob('Mydata_A.mat')
data_c1 = np.array([loadmat(entry, variable_names= ("X"), squeeze_me=True)["X"][:,0] for entry in data])
data_c2 = np.array([loadmat(entry, variable_names= ("X"), squeeze_me=True)["X"][:,1] for entry in data])
data_t = np.array([loadmat(entry, variable_names= ("T"), squeeze_me=True)["T"][:] for entry in data])

colour_cond=['red' if t==1 else 'blue' for t in data_t]
plt.scatter(data_c1,data_c2,colour=colour_cond)
plt.xlabel('X1')
plt.ylabel('X2')
plt.title('Training Data (X1,X2)')
plt.show()

最佳答案

您的问题是数组 data_c1data_c2data_t 似乎不止一维。在您的下一行中:

colour_cond=['red' if t==1 else 'blue' for t in data_t]

变量 t 不是标量而是 NumPy 数组,并且 t == 1 对于非标量 NumPy 对象是不明确的。我建议您拆开(即展平)所有阵列:

import glob
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import loadmat

%matplotlib inline

data = loadmat('Mydata_A.mat')
data_c1 = np.array([
loadmat(entry, variable_names=("X"), squeeze_me=True)["X"][:, 0]
for entry in entries]).ravel()
data_c2 = np.array([
loadmat(entry, variable_names=("X"), squeeze_me=True)["X"][:, 1]
for entry in entries]).ravel()
data_t = np.array([
loadmat(entry, variable_names=("T"), squeeze_me=True)["T"][:]
for entry in entries]).ravel()

colour_cond = ['red' if t==1 else 'blue' for t in data_t]
plt.scatter(data_c1, data_c2, color=colour_cond)
plt.xlabel('X1')
plt.ylabel('X2')
plt.title('Training Data (X1,X2)')
plt.show()

关于python - 在 python 上绘制带有颜色的特征时获取 `ValueError`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71915953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com