gpt4 book ai didi

python - Python Dataframe 子集的平均值

转载 作者:行者123 更新时间:2023-11-28 22:20:45 26 4
gpt4 key购买 nike

我正在使用 sklearn 数字数据集。

Each datapoint is a 8x8 image of a digit.

[[0,1,2,3, .... 62,63], # This row is one image
[0,1,2,3, .... 62,63], # 0-8 make up the first row of the image
... 1794 more times
[0,1,2,3, .... 62,63]]

我按如下方式设置我的数据框:

from sklearn import datasets
digits = datasets.load_digits()
df = pd.DataFrame(data = digits.data)
df['target'] = digits.target

我正在尝试遍历每个图像并计算行和列子集的平均值。

为了遍历每张图片,我只需执行以下操作:df[[i for i in range(64)]]

或者如果我想要一个 8 像素的随机子集,我执行以下操作 df[[random.sample(range(0, 64), 8)]]

那些我可以全神贯注的。我正在努力尝试迭代每个图像的子集。我将如何单独遍历每个图像的每一行?

我可以这样选择第一张图片的第一行:df.iloc[:1,0:8]

虽然这将选择第一张图像的第一列:df.iloc[:8,:1]

理想情况下,我想输出这个结构:

[[image_1_col_1_avg..... col8_avg, row1_avg ..... row8_avg],
[image_2_col_1_avg..... col8_avg, row1_avg ..... row8_avg],
....
[image_1797_col_1_avg..... col8_avg, row1_avg ..... row8_avg]]

我将 8*8 网格从 0-63 缩小为每行和每列的平均值。因此,我不会为每张图像设置 64 个数据点,而是只有 16 个。

我已经搜索了一段时间,但找不到太多关于如何遍历数据框子集的文档或指南。对于我所发现的,我无法真正理解。任何关于如何迭代数据框子集的见解、指导或解释都将不胜感激。

最佳答案

您可以使用 numpy - reshape 为 3d array 并获得 means每个轴 1 和 2,最后通过 numpy.hstack 将两个数组连接在一起并调用 DataFrame 构造函数:

from sklearn import datasets
digits = datasets.load_digits()
df = pd.DataFrame(data = digits.data)

col_ind = ['col_av_{}'.format(i) for i in range(1, 9)]
row_ind = ['row_av_{}'.format(i) for i in range(1, 9)]

a = df.values
b = a.reshape((a.shape[0], -1, 8))
c = np.hstack((b.mean(axis=1), b.mean(axis=2)))

df = pd.DataFrame(c, columns = col_ind + row_ind)
print (df.head())
col_av_1 col_av_2 col_av_3 col_av_4 col_av_5 col_av_6 col_av_7 \
0 0.0 2.250 10.500 6.000 5.000 8.500 4.500
1 0.0 0.875 2.625 14.125 15.625 5.875 0.000
2 0.0 1.625 6.125 10.875 12.500 10.125 1.750
3 0.0 1.250 4.750 8.375 10.375 6.375 2.250
4 0.0 1.125 4.875 8.375 8.625 7.125 2.125

col_av_8 row_av_1 row_av_2 row_av_3 row_av_4 row_av_5 row_av_6 \
0 0.0 3.500 7.250 4.875 4.000 3.750 4.375
1 0.0 3.750 4.500 5.000 7.000 4.500 4.875
2 0.0 3.875 6.000 5.625 4.125 4.750 5.750
3 0.0 4.500 5.750 3.625 3.625 3.250 2.375
4 0.0 1.500 1.875 3.000 4.875 6.625 8.125

row_av_7 row_av_8
0 5.375 3.625
1 4.875 4.625
2 8.000 4.875
3 5.000 5.250
4 3.500 2.750

关于python - Python Dataframe 子集的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48729392/

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