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使用rabbitmq实现网络爬虫示例
Feb 20 Python
Python进行数据科学工作的简单入门教程
Apr 01 Python
Python合并多个装饰器小技巧
Apr 28 Python
浅谈Python中数据解析
May 05 Python
常见的python正则用法实例讲解
Jun 21 Python
Python语言描述机器学习之Logistic回归算法
Dec 21 Python
基于python内置函数与匿名函数详解
Jan 09 Python
Python测试人员需要掌握的知识
Feb 08 Python
python dict 相同key 合并value的实例
Jan 21 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
tensorflow 模型权重导出实例
Jan 24 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 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
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
基于JQuery的多标签实现代码
2012/09/19 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python实现的批量下载RFC文档
2015/03/10 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python 实现倒排索引的方法
2018/12/25 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
会议接待欢迎词
2014/01/12 职场文书
中学生自我评价范文
2014/02/08 职场文书
初中毕业生自我评价
2015/03/02 职场文书
法定代表人免职证明
2015/06/24 职场文书
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
《废话连篇——致新手》——chinapizza
2022/04/05 无线电