gpt4 book ai didi

python - matplotlib:为什么绘制历史记录会在python中导致IndexError?

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:10 24 4
gpt4 key购买 nike

我正在学习horse-colic数据集。

感谢@Vaishali @Ultra TLC @Tom的help,数据被导入。

p_data = 'https://raw.githubusercontent.com/MachineIntellect/dataset.ml/master/horse_colic.csv'
df = pd.read_csv(p_data)
df = df.replace("?", np.NaN)
df = df.astype(np.float)


为了获得要打印的列数和行数,这段代码也很好用

%matplotlib inline
n_col = 4
n_row = int(math.ceil(df.shape[1] * 1.0/n_col))


当我尝试绘制历史

fig, axes = plt.subplots(n_row, n_col, figsize=(15, 30))
plt.tight_layout()
for i, col in enumerate(df.columns):
pos_i = i / n_col
pos_j = i % n_col
df.groupby("cp_data")[col].plot.hist(title=col, alpha=0.5, ax=axes[pos_i, pos_j]);


错误出现

IndexError                                Traceback (most recent call last)
<ipython-input-1-e6f18b850dfa> in <module>()
17 pos_i = i / n_col
18 pos_j = i % n_col
---> 19 df.groupby("cp_data")[col].plot.hist(title=col, alpha=0.5, ax=axes[pos_i, pos_j]);
20
21

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices


为什么绘制历史记录会导致IndexError?

似乎在 plot.hist(),某处发生了错误,如何解决?

最佳答案

此问题来自以下事实:fig, axes = plt.subplots(n_row, n_col, figsize=(15, 30))将2D数组分配给轴,当您编写pos_i = i / n_col, pos_j = i % n_col时,Python会将float数据类型返回给变量,因此,当您编写ax=axes[pos_i, pos_j]时,python将不接受float数据类型作为数组的整数索引!,请注意,您可以通过编写以下代码使数据类型的变量为整数:

    pos_i = i / n_col
int(pos_i)
pos_j = i % n_col
int(pos_j)

关于python - matplotlib:为什么绘制历史记录会在python中导致IndexError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56013805/

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