基于Python实现矩阵数据的按列求和计算

news/2024/4/27 16:21:17

下午在功能开发的时候遇上一个小功能点的实现过程中需要对矩阵数据按列求和计算,输出一维的列表数据,有点像是神经网络模型里面的Flatten一样,这里实现是很简单的,在实现的时候我突然涌现出来了一个有趣的想法,除了我自己的实现方式以外还有哪些实现方式呢?那种方式最简洁呢?

抱着这样的想法,我构想了一下然后一共想到了4种实现方式,这里一并给出来,如下:

#!usr/bin/env python
# encoding:utf-8
from __future__ import division"""
功能:  矩阵按列求和
"""import numpy as npdef generate_random_matrix(rows, cols, min_value, max_value, seed=None):"""生成一个指定大小、最小值和最大值的随机矩阵。:param rows: 矩阵的行数:param cols: 矩阵的列数:param min_value: 随机数生成的最小值:param max_value: 随机数生成的最大值:param seed: 随机数生成的种子,如果提供,则每次生成相同的矩阵:return: 一个包含随机数的矩阵"""if seed is not None:np.random.seed(seed)  # 设置随机数种子return np.random.randint(min_value, max_value + 1, size=(rows, cols))def func1(matrix):"""使用循环和列表解析"""res_list = [sum(col) for col in zip(*matrix)]return res_listdef func2(matrix):"""使用numpy库"""res_list = np.sum(matrix, axis=0)return res_list.tolist()def func3(matrix):"""使用zip函数和列表解析"""tmp_list = [matrix[i] for i in range(len(matrix))]res_list = [sum(col) for col in zip(*tmp_list)]return res_listdef func4(matrix):"""column_stack"""res_list = np.column_stack(matrix).sum(axis=1)return res_list.tolist()if __name__ == "__main__":matrix = generate_random_matrix(5, 5, 1, 10, seed=1)print(matrix)print("================================func1================================")print(func1(matrix))print("================================func2================================")print(func2(matrix))print("================================func3================================")print(func3(matrix))print("================================func4================================")print(func4(matrix))

测试效果如下:

[[ 6  9 10  6  1][ 1  2  8  7 10][ 3  5  6  3  5][ 3  5  8  8 10][ 2  8  1  7 10]]
================================func1================================
[15, 29, 33, 31, 36]
================================func2================================
[15, 29, 33, 31, 36]
================================func3================================
[15, 29, 33, 31, 36]
================================func4================================
[15, 29, 33, 31, 36]
[Finished in 0.9s]

如果大家有更多的方法也欢迎评论区留言哈,我一并汇总进来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11075.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【新手小白教程】2024最新:如何轻松订阅Patreon及其支付、充值全攻略

前言 什么是Patreon Patreon是一个极具创新性的在线平台,它为内容创作者提供了一个独特的机会,使他们能够直接通过订阅服务模式从粉丝那里获得资金支持或打赏。 这个平台吸引了各种类型的创作者,包括艺术家、音乐家、作家、视频制作人等&…

微服务demo(二)nacos服务注册

一、服务注册 1、pom: 移步spring官网https://spring.io,查看集成Nacos所需依赖 找到对应版本点击进入查看集成说明 然后再里面找到集成配置样例,这里只截一张,其他集成内容继续向下找 2、配置文件 (1)有…

python初级第一次作业

一、 dayint(input("enter today day")) fdayint(input("enter num of day since today")) c((fday%7)day)%7 if c0:print("sunday") elif c1:print("monday") elif c2:print("tuesday") elif c3:print("wendnsday&quo…

景联文科技上新高质量大模型训练数据!

在过去的一年中,人工智能领域呈现出了风起云涌的态势,其中模型架构、训练数据、多模态技术、超长上下文处理以及智能体发展等方面均取得了突飞猛进的发展。 在3月24日举办的2024全球开发者先锋大会的大模型前沿论坛上,上海人工智能实验室的领…

链动2+1模式 完全合法合规 不存在传销问题!!

在商业经营中,营销策略的巧妙运用对于提升产品销量和扩大品牌影响力至关重要。然而,企业在制定和执行营销策略时,必须严格遵循法律法规,以免陷入法律风险。本文将着重探讨链动21模式的法律要素,以论证其合规性。 一、链…

npm i安装依赖报错,但是cnpm i 却安装成功

问题描述:在a项目中npm i 安装依赖时发生以上报错,但是cnpm i 却成功,而且在其他项目中npm i 安装其他项目依赖也能成功.... 解决办法:删除项目中package-lock.json文件后再npm i 即可