为了账号安全,请及时绑定邮箱和手机立即绑定

未知的向量大小python

未知的向量大小python

慕的地6264312 2021-04-02 18:14:39
我有一个要在python中转换的matlab代码。我是python的新手,但我能够回答很多谷歌搜索问题。但是现在,我试图找出以下几点:当我在每列上应用不同的内容时,我有一个for循环,但是您不知道列数。例如。在matlab中,没有比这更容易的了:    for n = 1:size(x,2); y(n) = mean(x(:,n)); end但是我不知道例如在列数为1时如何在python上执行此操作,因为我无法在python中执行x [:,1]。任何的想法?
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

尝试一下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)


查看完整回答
反对 回复 2021-04-06
?
www说

TA贡献1775条经验 获得超8个赞

是的,如果您使用numpy,则可以使用x [:,1],并且还可以获得其他数据结构(向量而不是列表),matlab和numpy之间的主要区别是matlab使用矩阵进行计算,而numpy使用向量,但是您已经习惯了,我认为本指南将为您提供帮助。


查看完整回答
反对 回复 2021-04-06
?
aluckdog

TA贡献1847条经验 获得超7个赞

这是做到这一点的一种方法


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]


查看完整回答
反对 回复 2021-04-06
  • 3 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号