Lukas00990 2022-10-02 18:28 采纳率: 40.8%
浏览 51
已结题

python 矩阵同一列相乘

我想写一个矩阵,矩阵的大小由变量决定,同时,想写一个遍历函数,让矩阵中每行相乘。

DeviceList = []
DeviceList =[1, 2 , 3]

FuzzyMatrix = np.empty(np.empty(((len(DeviceList), len(DeviceList))))
for i in range(1, len(FuzzyMatrix)+1):
    score = []
    a = FuzzyMatrix[i][0]*FuzzyMatrix[i][1]*FuzzyMatrix[i][2]
    score.append(a)

现在如果我把DeviceList大小变化,比如增加一个数据。那么 我算 a 的乘积也要变化,有没有一种方法比较灵活。让算a那个同行的乘积会随着DeviceList大小自动变化呢?

  • 写回答

5条回答 默认 最新

  • _GX_ 2022-10-02 19:12
    关注
    import numpy as np
    
    n = 3
    m = np.zeros((n, n))
    
    # assign values to m:
    for i in range(n):
        for j in range(n):
            m[i,j] = i+j*2
    print(m)
    
    score1 = []
    score2 = []
    for i in range(n):
        score1.append(np.multiply.reduce(m[i,:])) # 同一行所有元素相乘
        score2.append(np.multiply.reduce(m[:,i])) # 同一列所有元素相乘
    
    print(score1)
    print(score2)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • Ko-walski 2022-10-02 19:34
    关注

    你这每次都是生成的无限接近0的数
    而且a = FuzzyMatrix[i][0]*FuzzyMatrix[i][1]*FuzzyMatrix[i][2]你这运算不会报错吗

    评论
  • 天元浪子 Python领域优质创作者 2022-10-02 22:15
    关注

    使用for循环对ndarray对象显式地实施遍历,基本上都属于问题代码。计算各行或各列的积,应该使用prod函数。

    import numpy as np
    a = np.arange(12).reshape(3,4)
    a
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    np.prod(a, axis=0) # 计算各列乘积
    array([  0,  45, 120, 231])
    np.prod(a, axis=1) # 计算各行乘积
    array([   0,  840, 7920])
    
    评论
  • 爱音斯坦牛 全栈领域优质创作者 2022-10-03 01:05
    关注

    首先你这个数组下标,从1开始有问题吧?其次,你如果想要动态的增加,很简单,在第一个for里,再写一个for循环,然后累乘不就行了,像这样

    for i in range(0,len(FuzzyMatrix))  #行长度
          a=1
          for j in range(0,len(FuzzyMatrix))  #列长度
                 a=a*FuzzyMatrix[i][j]
          print(a)  #输出每一行的乘积
    

    有帮助的话采纳一下哦!

    评论 编辑记录
  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-09 18:51
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 10月11日
  • 已采纳回答 10月3日
  • 创建了问题 10月2日

悬赏问题

  • ¥15 求苹果推信imessage批量推信技术
  • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
  • ¥15 利用加权最小二乘法求亚马逊各类商品的价格指标?怎么求?
  • ¥15 c++ word自动化,为什么可用接口是空的?
  • ¥15 Matlab计算100000*100000的矩阵运算问题:
  • ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
  • ¥16 需要完整的这份订单所有的代码,可以加钱
  • ¥15 Stata数据分析请教
  • ¥15 请教如何为VS2022搭建 Debug|win32的openCV环境?
  • ¥15 关于#c++#的问题:c++如何使用websocketpp实现websocket接口调用,求示例代码和相关资料