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基于time模块求程序运行时间的方法
Sep 18 Python
高效使用Python字典的清单
Apr 04 Python
python爬取哈尔滨天气信息
Jul 14 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
便捷提取python导入包的属性方法
Oct 15 Python
python实现连续图文识别
Dec 18 Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 Python
Django视图扩展类知识点详解
Oct 25 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
python3+PyQt5+Qt Designer实现界面可视化
Jun 10 Python
深入浅析Django MTV模式
Sep 04 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
javascript动态加载二
2012/08/22 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
Python中的下划线详解
2015/06/24 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
Python变量赋值的秘密分享
2018/04/03 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
Pytorch Tensor的统计属性实例讲解
2019/12/30 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
揠苗助长教学反思
2014/02/04 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
公司晚会策划方案
2014/05/17 职场文书
大学专科自荐信
2014/06/17 职场文书
关于教师节的广播稿
2014/09/10 职场文书
校本研修个人总结
2015/02/28 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书