1. 程式人生 > >python3指令碼提高執行速度要注意的幾個初步問題

python3指令碼提高執行速度要注意的幾個初步問題

1 對於資料運算密集型的指令碼,能採用scipy矩陣運算解決的用scipy矩陣解決,運算效率提升明顯。

data = [[x0, y0, z0], [x1, y1, z1], ...]

上面型別的資料需要對x y z 單獨處理的,

用scipy.transpose()或scipy.mat(data).transpose()轉換為

dataT = [[x0, x1, ...], [y0, y1, ...], [z0, z1, ...]]

[X, Y, Z] = dataT

對 X Y Z 單獨處理後,再組合成二維列表[X, Y, Z]並轉置為原有的形式。

經上述處理,比用 for 迴圈的處理效率能有十幾至幾十倍的提升。len(data)越大,提升越明顯。

2 需要動態生成的列表儘量用推導式,效率多高沒測試,但程式碼簡潔了不止一點,而且從程式碼看功能更一目瞭然。  

data = []

for n in range(length):
    data.append(process_by_n)

可以以推導式表示為

data = [process_by_n for n in range(length)]

相關推薦

python3指令碼提高執行速度注意初步問題

1 對於資料運算密集型的指令碼,能採用scipy矩陣運算解決的用scipy矩陣解決,運算效率提升明顯。 data = [[x0, y0, z0], [x1, y1, z1], ...] 上面型別的資料需要對x y z 單獨處理的, 用scipy.transpose()或

購買深圳簡訊平臺選擇簡訊公司注意重點

簡訊平臺營銷作為一種價效比很高的營銷方式,被廣闊中小企業所喜愛,做好簡訊營銷的關鍵是要選擇一個正軌的簡訊平臺平臺,那麼如何選擇到一個正軌的簡訊平臺平臺呢?這四點不得不知,下面樂信小編就為大家細緻引見一下。   一、抵達率高、傳送速度快   抵達率高是做好簡訊營銷的關鍵,假如傳送的簡訊客戶收不到,那麼後面的

關於錢包:我們注意問題—MGCEX

  一:私鑰決定了你所擁有數字貨幣的產權。只有你才能使用你的數字貨幣。  二:私鑰不能忘也不能丟。忘了就只能眼睜睜看到幣在那裡卻動不了,丟了你的幣就白白送人了。  三:公鑰是公開的,地址也是公開的。任何人把幣轉入你的地址裡,就只有擁有對應私鑰的人,也就是我們自己才能動轉進來的

matlab執行出現“變數似乎會隨著迭代次數改變而變化,請預分配記憶體,以提高執行速度”問題

這句話大致意思就是: b = 0;for i = 1:3    a(i) = b;end是說變數的長度是變化的,經常在迴圈裡出現,比如上面這個例子,這樣會影響計算速度,最好的辦法是預先定義a的長度,比如b = 0;a = zeros(1,3);for i = 1:3  &nbs

C++程式提高執行速度的方法

眾所周知,因為ACM比賽中對程式執行時間的限制,我們總要想盡一切辦法來提高程式的執行速度,比較常見的比如: a = a+b;可以用a+=b;來提高速度, a = a+1;可以用a++;來提高速度等等。 而今天,我對I/O對程式執行速度的提升有了很直觀的感受。 之前在網上看到

PaxCompiler指令碼編譯的一些注意的問題

使用PaxCompiler做指令碼的時候,有的時候我們需要在指令碼中引用其他的指令碼檔案,如果指令碼檔案放入程式的根目錄引用是沒有任何問題的,但是我們做指令碼的時候不可能指令碼都放到程式的根目錄,這樣引用的會找不到要引用的指令碼檔案pas,但是PaxCompiler提供了一

MyEclipse/Eclipse簡單設定提高執行速度

6、修改預設JDK  window->preferences->MyEclipse->Maven4MyEclipse->Maven,將Maven JDK改為電腦上安裝的JDK,即不使用myeclipse提供的JDK,單擊add按鈕,選擇你的電腦上的JDK即可(注意:不是JRE,我的值為

matlab提高執行速度

(1)為矩陣變數預製記憶體而不是動態分配 慢: for k = 2:1000      x(k) = x(k-1) + 5;  end  快: x = zeros(1, 1000);  for k = 2:1000      x(k) = x(k-1) + 5;  end 

在linux c++類中的成員函式裡建立多執行注意的地方

如何在linux 下c++中類的成員函式中建立多執行緒 linux系統中執行緒程式庫是POSIX pthread。POSIX pthread它是一個c的庫,用C語言進行多執行緒程式設計我這裡就不多說了,網上的例子很多。但是如何在C++的類中實現多執行緒程式設計呢?如果套

整合LeanCloud使用者反饋SDK注意

1.在 Xcode 中選擇 UniversalFramework Target,裝置選為 iOS Device,在 Product 選單中選擇 Archive 即可開始編譯。編譯完成之後會在當前 build 目錄下。 注意,不能直接點Run按鈕,直接點Run按

Windows-速度優化的方面

mage inf 分享圖片 style info HR col nbsp div One. Win+R - > cmd- > msconfig 禁用不需要的啟動項! Two. 關閉一些視覺選項 Three. 設置應用啟動快捷鍵 Win

函數的參數,怎麽看?

傳參 wid 函數 enter CA capital llc AR sel 例如:str 有如下函數: 1.def capitalize(self): 只有一個 self 代表不用傳參數2.def center(self, width, fillchar=None): 代

淘寶後臺技術大揭祕,不看這篇你雙十一損失億!

轉眼間雙十一來了, 聽說你已經把寶貝提前收藏, 只待今天瘋狂“剁手” 那麼問題來了,除了買買買, 你需要程式猿男朋友嗎? 會寫程式碼搶秒殺的那種, 為了你雙十一的便利,我什麼都願意, 但請發現我默默的付出,記住我的好! 據不完全統計,正是因為大家熱情的刷刷刷,阿里巴巴

python中執行shell命令的方法

1.os.system() a=os.system("df -hT | awk 'NR==3{print $(NF-1)}'") 該命令會在頁面上列印輸出結果,但變數不會保留結果,只會保留返回的狀態碼. 2.os.popen() os.popen()返回的是 file read 的物件,但沒有狀

從查詢藍芽裝置到能夠相互通訊經過基本步驟(本機做為伺服器)

從查詢藍芽裝置到能夠相互通訊要經過幾個基本步驟(本機做為伺服器): 1.設定許可權 在manifest中配置 <uses-permission android:name=“android.permission.BLUETOOTH”/+> <uses-permissi

shell指令碼-保留目錄下最新的檔案,其他刪除

#!/bin/bash #保留檔案數 ReservedNum=5 FileDir=/data/bak date=$(date "+%Y%m%d-%H%M%S") FileNum=$(ls -l $FileDir|grep ^- |wc -l) while(( $FileNum &g

Linux儲存之安裝時區?如何規劃分割槽?不同的分割槽有什麼含義?

文章目錄 1. 掛載點主要有 / 、 swap 、 /home 等,它們都有什麼具體的含義呢? 2.幾種基本的劃分 2.1 對初次接觸的新手或硬碟空間有限Desktop的安裝建議: 2.2 對高階Desktop使用者的安裝

執行緒常用的方法彙總

最近學習併發程式設計遇到不少問題,就順手總結了有關多執行緒的幾個常用的方法sleep()sleep()方法屬於Thread類,主要的作用是讓當前執行緒停止執行,把cpu讓給其他執行緒執行,但不會釋放物件鎖和監控的狀態,到了指定時間後執行緒又會自動恢復執行狀態注意:執行緒睡眠到期自動甦醒,並返回到可執行狀態,不

關於GCD執行緒順序的題,認識一下

//測試第一個CGD的執行結果dispatch_queue_t queue = dispatch_queue_create("test", DISPATCH_QUEUE_CONCURRENT);NSLo

Java中有關多執行緒併發的工具類之總結

概述 在JDK的併發包(java.util.concurrent)中,為我們提供了幾個非常重要的併發工具類,分別為CountDownLatch、CyclicBarrier、Semaphore和Exchanger,下面將一一對這幾個類的功能及基本用法做詳細講解。 1)Cou