首页 > 解决方案 > 有没有办法每 30 行循环一次矩阵/数组/df 以返回 scipy.stats.describe

问题描述

我想要一个循环遍历 (1095, 10000) 数组的每 30 行,返回 ascipy.stats.describe(matrix[30])并将这些结果写入列表

我试图手动完成它并且它有效,我正在尝试优化我的代码

stats150 = scipy.stats.describe(matrix[150])
list_for_stats +=['150:', stats150]

stats180 = scipy.stats.describe(matrix[180])
list_for_stats += ['180:', stats180]

statsOut = open("myOutputStatsFile.txt", "w")
for line in list_for_stats:
    # write line to output file
    statsOut.write(str(line))
    statsOut.write("\n")
statsOut.close()

一个比我已有的更直观的 for 循环

标签: pythonpython-3.xloopsscipy

解决方案


假设您的矩阵是一个 numpy 数组,此循环将遍历 (1095,10000) 个矩阵的第 30 行,并将 scipy.describe 结果与行号一起存储为列表中的字符串:

import numpy as np
import scipy
matrix = np.ones(shape=(1095,10000))
list_for_stats=[]
for i in range(0,matrix.shape[0],30):
    list_for_stats +=[str(i)+':', scipy.stats.describe(matrix[i])]

推荐阅读