未知矢量大小python

yb3bgrhw  于 2023-01-01  发布在  Python
关注(0)|答案(3)|浏览(236)

我有一个matlab的代码,我想把它翻译成python.我是python的新手,但是我已经能够回答很多问题了,谷歌一下.但是现在,我想弄明白以下几点:当我在每列上应用不同的东西时,我有一个for循环,但是你不知道列数。例如,在matlab中,没有什么比这更容易的了:

for n = 1:size(x,2); y(n) = mean(x(:,n)); end

但是我不知道如何在python上做,比如说,列数是1,因为我不能在python中做x[:,1],你知道吗?

eivgtgni

eivgtgni1#

是的,如果你使用numpy,你可以使用x[:,1],你也可以得到其他的数据结构(向量而不是列表),matlab和numpy的主要区别是matlab使用矩阵来计算,而numpy使用向量,但是你习惯了,我认为this guide会帮助你解决这个问题。

uyto3xhc

uyto3xhc2#

试试numpy,它是一个用C编写的高性能数学库的python绑定,我相信它与矩阵切片操作有着相同的概念,而且它比用纯python编写的相同代码(在大多数情况下)要快得多。
对于您的示例,我认为最接近的是使用numpy.mean
在纯Python中,计算列的平均值是很困难的,但是如果你能够转置矩阵,你可以使用如下的方法来完成:

# there are no builtin avg function
def avg(lst):
    return sum(lst)/len(lst)

rows = list(avg(row) for row in a)
nlejzf6q

nlejzf6q3#

这是一种方法

from numpy import *
x=matrix([[1,2,3],[2,3,4]])
[mean(x[:,n]) for n in range(shape(x)[1])]

# [1.5, 2.5, 3.5]

相关问题