python数组的乘法_在Python中乘法非常大的2D数组

我必须在Python中将非常大的2D数组乘以大约100次.每个矩阵由32000×32000元素组成.

我正在使用np.dot(X,Y),但是每次乘法都需要很长时间…在我的代码实例下面:

import numpy as np

X = None

for i in range(100)

multiplying = True

if X == None:

X = generate_large_2darray()

multiplying = False

else:

Y = generate_large_2darray()

if multiplying:

X = np.dot(X, Y)

还有其他方法快得多吗?

更新资料

这是显示htop界面的屏幕截图.我的python脚本仅使用一个内核.同样,在3h25m之后,仅完成了4次乘法.

更新2

我尝试执行:

import numpy.distutils.system_info as info

info.get_info('atlas')

但我收到了:

/home/francescof/.local/lib/python2.7/site-packages/numpy/distutils/system_info.py:564: UserWarning: Specified path /home/apy/atlas/lib is invalid. warnings.warn('Specified path %s is invalid.' % d) {}

因此,我认为它的配置不正确.

反之亦然,关于blas,我只收到{},没有任何警告或错误.

解决方法:

正如ali_m所建议的那样,使用BLAS库可以加快操作速度.但是,我系统中的问题是numpy的配置错误.解决方法如下:

1)确保具有所有必需的库(可以使用ATLAS,OpenBLAS等).自从在Ubuntu中直接受支持以来,我选择了ATLAS.

sudo apt-get install libatlas3gf-base libatlas-base-dev libatlas-dev

2)删除所有以前的numpy安装,例如pypm卸载numpy(如果您使用ActivePython安装了它)

3)使用pip重新安装numpy:pip install numpy

4)确保地图集正确链接:

import numpy.distutils.system_info as info

info.get_info('atlas')

ATLAS version 3.8.4 built by buildd on Sat Sep 10 23:12:12 UTC 2011:

UNAME : Linux crested 2.6.24-29-server #1 SMP Wed Aug 10 15:58:57 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

INSTFLG : -1 0 -a 1

ARCHDEFS : -DATL_OS_Linux -DATL_ARCH_HAMMER -DATL_CPUMHZ=1993 -DATL_USE64BITS -DATL_GAS_x8664

F2CDEFS : -DAdd_ -DF77_INTEGER=int -DStringSunStyle

CACHEEDGE: 393216

F77 : gfortran, version GNU Fortran (Ubuntu/Linaro 4.6.1-9ubuntu2) 4.6.1

F77FLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -Wa,--noexecstack -fPIC -m64

SMC : gcc, version gcc (Ubuntu/Linaro 4.6.1-9ubuntu2) 4.6.1

SMCFLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -Wa,--noexecstack -fPIC -m64

SKC : gcc, version gcc (Ubuntu/Linaro 4.6.1-9ubuntu2) 4.6.1

SKCFLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -Wa,--noexecstack -fPIC -m64

{'libraries': ['lapack', 'f77blas', 'cblas', 'atlas'], 'library_dirs': ['/usr/lib/atlas-base/atlas', '/usr/lib/atlas-base'], 'define_macros': [('ATLAS_INFO', '"\\"3.8.4\\""')], 'language': 'f77', 'include_dirs': ['/usr/include/atlas']}

标签:performance,matrix,arrays,python,numpy

来源: https://codeday.me/bug/20191121/2052699.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0阶指数哥伦布编码

指数哥伦布编码 规定语法元素的编解码模式的描述符如下: 比特串: b(8):任意形式的8比特字节(就是为了说明语法元素是为8个比特,没有语法上的含义) f(n):n位固定模式比特串(其值固定,如forbidde…

TensorFolw 报错

1、报错1&#xff1a;ValueError: Only call softmax_cross_entropy_with_logits with named arguments (labels..., logits..., ...) 提示出错如下&#xff1a; Traceback (most recent call last):File "/MNIST/softmax.py", line 12, in <module>cross_en…

CentOS7种搭建FTP服务器

安装vsftpd 首先要查看你是否安装vsftp [rootlocalhost /]# rpm -q vsftpd vsftpd-3.0.2-10.el7.x86_64 #显示也就安装成功了&#xff01; 如果没有则安装vsftpd [rootlocalhost/]# yum install -y vsftpd 完成后再检查一遍 [rootlocalhost /]# whereis vsftpd vsf…

js循环

顺序——要加分号结束 分支&#xff1a;让程序根据条件不同执行不同的代码 if else语句用来做分支的 if&#xff08;条件&#xff09;{代码} if&#xff08;条件&#xff09;{代码}else{代码} else if&#xff08;条件&#xff09;{代码} if是嵌套。 switch...case&#xff1…

x264函数调用关系图

1 encoder 2 slice write 3 analyse FFMPEG中MPEG-2编解码函数调用关系图 1 Encoder &#xff08;函数调用从左到右&#xff0c;下同&#xff1b;图片显示不全时&#xff0c;请下载显示&#xff09; 2 P帧运动估计流程图 3 B帧运动估计流程图 4 decoder ffmpeg的mpeg2编码I帧代…

Tensorflow 加载预训练模型和保存模型

使用tensorflow过程中&#xff0c;训练结束后我们需要用到模型文件。有时候&#xff0c;我们可能也需要用到别人训练好的模型&#xff0c;并在这个基础上再次训练。这时候我们需要掌握如何操作这些模型数据。看完本文&#xff0c;相信你一定会有收获&#xff01; 一、Tensorfl…

在 ActiveReports 中嵌入 Spread 控件

Spread 是一款很出色的表格控件&#xff0c;Spread 可以使开发人员把具有兼容 Microsoft Excel 的电子表格添加到程序中。ActiveReports 提供了一个非常灵活的、简单的报表环境。下面将展示怎样在 ActiveReports 中使用 Spread for WinForm。和其他三方控件一样&#xff0c;Spr…

sort()函数、C++

Sort&#xff08;&#xff09;函数是c一种排序方法之一&#xff0c;它使用的排序方法是类似于快排的方法&#xff0c;时间复杂度为n*log2(n) &#xff08;1&#xff09;Sort函数包含在头文件为#include<algorithm>的c标准库中。 II&#xff09;Sort函数有三个参数&#x…

python waitkey_python中VideoCapture(),read(),waitKey()的使用

有以下程序import cv2cap cv2.VideoCapture(0)while cap.isOpened():ret,frame cap.read()cv2.imshow(frame,frame)c cv2.waitKey(1)if c 27:breakcap.release()cv2.destroyAllWindows()说明&#xff1a;程序段里&#xff0c;1、cv2.VideoCapture()函数&#xff1a;cap cv…

深度学习案例之 验证码识别

本项目介绍利用深度学习技术&#xff08;tensorflow&#xff09;&#xff0c;来识别验证码&#xff08;4位验证码&#xff0c;具体的验证码的长度可以自己生成&#xff0c;可以在自己进行训练&#xff09; 程序分为四个部分 1、生成验证码的程序&#xff0c;可生成数字字母大…

windows下使用pthread库

最近在看《C多核高级编程》这本书&#xff0c;收集了些有用的东西&#xff0c;方便在windows下使用POSIX标准进行Pthread开发&#xff0c;有利于跨平台。 -------------------------------------------------- windows下使用pthread库时间:2010-01-27 07:41来源:罗索工作室 作…

day 05 多行输出与多行注释、字符串的格式化输出、预设创建者和日期

msg"hello1 hello2 hello3 " print(msg) 显示结果为&#xff1a; # " "只能进行单行的字符串 多行字符串用 ,前面设置变量&#xff0c;可以用 表示多行 msghello1 hello2 hello3print(msg) 显示结果为&#xff1a; 当然如果没有设置变量&#xff0c;…

python数值计算guess_【python】猜数字game,旨在提高初学者对Python循环结构的使用...

import random #引入生成随机数的模块需求&#xff1a;程序设定生成 1-20 之间的一个随机数&#xff0c;让用户猜日期&#xff1a;2019-10-21作者&#xff1a;xiaoxiaohui目的&#xff1a;猜数字game&#xff0c;旨在提高初学者对Python 变量类型以及循环结构的使用。secretNu…

调试九法-总体规则

调试规则规则1 理解系统规则2 制造失败规则3 不要想&#xff0c;而要看规则4 分而治之规则5 一次只改一个地方规则6 保持审计跟踪规则7 检查插头规则8 获得全新观点规则9 如果你不修复bug&#xff0c;它将依然存在转载于:https://www.cnblogs.com/uetucci/p/7987805.html

深度学习之循环神经网络(Recurrent Neural Network,RNN)

递归神经网络和循环神经网络 循环神经网络&#xff08;recurrent neural network&#xff09;&#xff1a;时间上的展开&#xff0c;处理的是序列结构的信息&#xff0c;是有环图递归神经网络&#xff08;recursive neural network&#xff09;&#xff1a;空间上的展开&#…

从北京回来的年轻人,我该告诉你点什么?

前言 就在上周末&#xff0c;我与公众号里的一个当地粉丝见面了&#xff0c;一起吃了顿饭&#xff0c;顺便聊了聊。先来简单交代下我们这位粉丝&#xff08;以下简称小L&#xff09;的经历以及诉求。 小L之前在北京八维研修学院培训的PHP&#xff0c;因为家庭原因&#xff0c;没…

Linphone编译【转载】

Linphone依赖太多的库&#xff0c;以致于稍有疏失&#xff0c;就会在编译&#xff0c;运行出错&#xff0c;都是由于依赖库安装的问题。 1 基础知识 1.1 动态库的连接 很多人安装完库后&#xff0c;configure依然报告这个库没有。这是对linux动态库知识匮乏造成&#xff0c;也就…

python助教的面试题_python面试题----持续更新中

为什么学习Python&#xff1f;通过什么途径学习的Python&#xff1f;Python和Java、PHP、C、C#、C等其他语言的对比&#xff1f;python 解释型语言&#xff0c;语法简洁优雅。C C 编译型语言&#xff0c;先编译后运行&#xff0c;偏底层。简述解释型和编译型编程语言&#xff1…

python3模块: requests

Python标准库中提供了&#xff1a;urllib等模块以供Http请求&#xff0c;但是&#xff0c;它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作&#xff0c;甚至包括各种方法覆盖&#xff0c;来完成最简单的任务。 发送GET请求 import urllib.requestf…

SUSE12系统安装及LVM设置详解

SUSE12自定义安装跟以往版本差不多&#xff0c;只是调整了一些功能安装顺序&#xff0c;例如网络设置放到很靠前&#xff0c;SUSE11的时候几乎是在后半部分&#xff0c;自定义分区也调整到网络设置之后&#xff0c;入口设置也隐秘&#xff0c;如果是熟悉suse11安装&#xff0c;…