日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/20 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的python数组的乘法_在Python中乘法非常大的2D数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。