如何用python打印整个矩阵?

2024-03-29 09:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个矩阵中取一列,然后尝试创建一个数组,该数组在不同的增量上对列进行平均。我写了一个示例代码来说明我的问题。在

import numpy
import numpy as np
import matplotlib.pyplot as plt

numint = 2
numflo = 2.0

a = numpy.matrix ([[1,2,3],[4,5,6],[7,8,9,],[10,11,12],[13,14,15],[16,17,18]])

b= a[-2*3:,1]

for i in range (0,numint+1,1):
    avg = sum(b[numint*i:numint*(i+1)])/numflo
    print avg

当我运行这段代码并在循环内打印avg时,我得到以下结果

^{pr2}$

但如果我在循环外打印平均值,那么

[[15.5]]

这就把我剩下的代码都扔了。为什么它不打印整个矩阵平均值而只打印最后一个数字。感谢任何帮助,谢谢!在


Tags: 代码importnumpy示例matplotlibasnp矩阵
2条回答

试试看

avg_list = []
for i in range (0,numint+1,1):
    avg = sum(b[numint*i:numint*(i+1)])/numflo
    avg_list.append(avg)

print (avg_list)

这是因为在您的for loop中,您总是将avg更新为上一列的平均值。
换言之,如果你想得到整个平均值,你可以像这样做一个漂亮的一行:

avg = [sum(b[numint*i:numint*(i+1)])/numflo for i in range(0,numint+1,1)]

然后您可以简单地访问您的值,如avg[0]等。。在

相关问题 更多 >