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 3中实现类型检查器的简单方法
Jul 03 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
用python实现对比两张图片的不同
Feb 05 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
使用OpenCV实现道路车辆计数的使用方法
Jul 15 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
js 小贴士一星期合集
2010/04/07 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
专科毕业生学习生活的自我评价
2013/10/26 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫