python 判断矩阵中每行非零个数的方法


Posted in Python onJanuary 26, 2019

如下所示:

# -*- coding: utf-8 -*-
# @Time  : 2018/5/17 15:05
# @Author : Sizer
# @Site  : 
# @File  : test.py
# @Software: PyCharm
import time
import numpy as np

# data = np.array([
# [5.0, 3.0, 4.0, 4.0, 0.0],
# [3.0, 1.0, 2.0, 3.0, 3.0],
# [4.0, 3.0, 4.0, 3.0, 5.0],
# [3.0, 3.0, 1.0, 5.0, 4.0],
# [1.0, 5.0, 5.0, 2.0, 1.0]
# ])
data = np.random.random((1000, 1000))
print(data.shape)
start_time = time.time()
# avg = [float(np.mean(data[i, :])) for i in range(data.shape[0])]
# print(avg)


start_time = time.time()
avg = []
for i in range(data.shape[0]):
  sum = 0
  cnt = 0
  for rx in data[i, :]:
   if rx > 0:
     sum += rx
     cnt += 1
  if cnt > 0:
   avg.append(sum/cnt)
  else:
   avg.append(0)
end_time = time.time()
print("op 1:", end_time - start_time)

start_time = time.time()
avg = []
isexist = (data > 0) * 1
for i in range(data.shape[0]):
  sum = np.dot(data[i, :], isexist[i, :])
  cnt = np.sum(isexist[i, :])
  if cnt > 0:
   avg.append(sum / cnt)
  else:
   avg.append(0)
end_time = time.time()
print("op 2:", end_time - start_time)
#
# print(avg)
factor = np.mat(np.ones(data.shape[1])).T
# print("facotr :")
# print(factor)
exist = np.mat((data > 0) * 1.0)
# print("exist :")
# print(exist)
# print("res  :")
res = np.array(exist * factor)
end_time = time.time()
print("op 3:", end_time-start_time)

start_time = time.time()
exist = (data > 0) * 1.0
factor = np.ones(data.shape[1])
res = np.dot(exist, factor)
end_time = time.time()
print("op 4:", end_time - start_time)

经过多次验证, 第四种实现方式的事件效率最高!

以上这篇python 判断矩阵中每行非零个数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现文件复制删除
Apr 19 Python
Python入门_条件控制(详解)
May 16 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
python中文乱码不着急,先看懂字节和字符
Dec 20 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
python3之模块psutil系统性能信息使用
May 30 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
pytorch自定义二值化网络层方式
Jan 07 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
May 29 Python
Python xlwt模块使用代码实例
Jun 10 Python
对python 判断数字是否小于0的方法详解
Jan 26 #Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 #Python
在Python中调用Ping命令,批量IP的方法
Jan 26 #Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 #Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 #Python
Python检查ping终端的方法
Jan 26 #Python
使用python Telnet远程登录执行程序的方法
Jan 26 #Python
You might like
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
python实现多线程网页下载器
2018/04/15 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
python中常用的数据结构介绍
2021/01/12 Python
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
个人思想理论学习的自我鉴定
2013/11/30 职场文书
土木工程专业个人求职信
2013/12/05 职场文书
业务副厂长岗位职责
2014/01/03 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
工程质量承诺书范文
2014/03/27 职场文书
服务之星事迹材料
2014/05/03 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
2014年库房工作总结
2014/11/26 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
JavaScript中reduce()的用法
2022/05/11 Javascript