python numpy组件与运算速度测试

最近的一个程序案例中,需要对二维数据的行列做与运算,于是做了一个运算速度的小test

变量声明&赋值:

import numpy as np

# 构建随机数组
L = 2000
a = np.random.randint(0, 2, size=[L, L])

# np.array二维数组,单元类型分别为int、bool
arrayInt = np.int_(a)
arrayBool = np.bool_(a)

# np.matrix二维数组,单元类型分别为int、bool
matInt = np.matrix(arrayInt)
matBool = np.matrix(arrayBool)

 与运算函数

func1:矩阵的做与运算

func2:矩阵的做与运算

def func1(array):
    for i in range(0,L):
        for j in range(0,L):
            br = array[i] & array[j]

def func2(array):
    for i in range(0,L):
        for j in range(0,L):
            br = array[i][:] & array[:][j]

运行测试

测试项目如下:

1. np.array(int)矩阵行行与运算速度

2. np.array(bool)矩阵行行与运算速度

3. np.matrix(int)矩阵行行与运算速度

4. np.matrix(bool)矩阵行行与运算速度

5. np.array(int)矩阵行列与运算速度

6. np.array(bool)矩阵行列与运算速度

7. np.matrix(int)矩阵行列与运算速度

8. np.matrix(bool)矩阵行列与运算速度

import time

print("array: 行 与运算")
start = time.time()
func1(arrayInt)
end = time.time()
print("int:",end-start)

start = time.time()
func1(arrayBool)
end = time.time()
print("int:",end-start, end="\n\n")

print("matrix: 行 与运算")
start = time.time()
func1(matInt)
end = time.time()
print("bool:",end-start)

start = time.time()
func1(matBool)
end = time.time()
print("bool:",end-start, end="\n\n")

print("array: 行列 与运算")
start = time.time()
func2(arrayInt)
end = time.time()
print("int:",end-start)

start = time.time()
func2(arrayBool)
end = time.time()
print("bool:",end-start, end="\n\n")

print("matrix: 行列 与运算")
start = time.time()
func2(matInt)
end = time.time()
print("int:",end-start)

start = time.time()
func2(matBool)
end = time.time()
print("bool:",end-start)

 测试结果如下: 

 由此可见:

* 大多数情况下,bool类型与运算速度快于int

* matrix类型做与运算速度要低于array类型

* 行行 与和 行列与速度相似

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值