
numpy array宣告 在 コバにゃんチャンネル Youtube 的最佳解答

Search
在Python 中宣告1個ndarray 變數可直接使用numpy.array() 函式, 傳入一個list, ... import numpy as np # 建立一個 numpy.ndarray, 1維陣列 a=np.array([1,3,4,2,1]) ... ... <看更多>
這種語法也稱為function expression,這與用def宣告的function一樣 ... 1: import numpy as np 2: np1 = np.array( [1, 2, 3, 4] ) 3: print(np1). ... <看更多>
#1. [筆記] numpy 用法(1) 宣告與基本運算 - 陳雲濤的部落格
基本用法array宣告, dimension, shape, size. import numpy as np array = np.array([[1,2,3], [4,5,6]]) print(array) print('number of dim:',array.ndim) ...
一般我們都不會一點譜都沒有,真的沒譜的話,不如先用python的list,然後再用ndarray = np.array(list)轉換好了。 以上這篇numpy 宣告空陣列詳解就是小編分享給大家的 ...
LESSON 10.2: 產生固定間隔的一維數據陣列. LESSON 10.3: 將python 的List轉成numpy array形式. LESSON 10.4: 串接數據陣列. Lesson 10.5: 刪除或新增元素到陣列內 ...
#4. [Day07]Learning Numpy - 建立、合併、分割 - iT 邦幫忙
某些時候Numpy的陣列就像是Python內建的list型態,但Numpy提供更有效率的儲存和操作。 ... 但我的30天裡面只有針對以下四個套件Numpy、Pandas、Matplotlib、Seaborn有 ...
Use of special library functions (e.g., random). 可以通過dtype引數在建立時指定元素型別. 宣告一個沒有初值的ndarray型別的變數. topic_list ...
#6. Python Numpy 陣列的初始化和基本操作 - 程式前沿
import numpy as np >>> a = np.arange(15).reshape(3, 5) >>> a array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) >>> a.shape ...
有3 種主要方法可用於在Python 中宣告3D 陣列,列表推導式、乘法方法和numpy 庫。
#8. NumPy 筆記:陣列ndarray - 一個地球人在臺北
NumPy 是Python 的運算套件,提供陣列 (ndarray)、矩陣 (matrix)… ... np.array([元素1, 元素2, 元素3, 元素4, 元素5], dtype = 格式) 二維陣列語法
#9. Python 學習筆記: Numpy (一) : 建立陣列 - 小狐狸事務所
dtype=np.float64. numpy.ndarray 物件具有如下常用屬性: ndarray 物件常用屬性, 說明. dtype, 陣列元素之 ...
np.zeros返回來一個給定形狀和型別的用0填充的陣列。 numpy.zeros(shape, dtype=float, order='C') np.zeros(5) array([ 0., 0., 0., 0., 0.]) ...
#11. NumPy 1.14 教學- #01 基礎, 建立陣列的方法
NumPy 的array是NumPy中名為ndarray的Class所定義的,而這個array當然支援多維度陣列,也可以說它是一個支援矩陣(Martix)的類別!然而,Python的array則是 ...
#12. 陣列的建立(1)(含np.array、shape 使用方法) - 軟體罐頭
>>>import numpy as np 宣告使用NumPy後,就可以使用NumPy模組,先建立一維陣列: >>>array1=np.array([1,2,3,4,5,6,7]) >>> array1 array([1, 2, 3, ...
#13. Python玩數據(2):Numpy [1/2]
Numpy 基礎元素:ndarray. Numpy最重要的元素就是ndarray,它是N-Dimensional Array的縮寫,在Numpy裡,dimesions被稱為axes,而 ...
#14. 【轉】Python之Numpy詳細教程 - IT人
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0) ... 這裡宣告瞭欄位名稱和相應的標量資料型別。
#15. Lecture 8 進階多物件控制(array)
一、NumPy Array(陣列)簡介. 在Python預設的程式語言中,有list指令來一次儲存眾多元素,但是並沒有array這種資料型態。「array陣列」是Python的另一個 ...
#16. 一維陣列與二維陣列(Python) - 高中資訊科技概論教師黃建庭的 ...
sum=score1+score2+score3+score4+…+score500;. 註:程式中不能寫…,實際上要完成宣告500個變數與 ...
#17. Python-1/02 numPy的資料型態(ndarray).md at master - GitHub
在Python 中宣告1個ndarray 變數可直接使用numpy.array() 函式, 傳入一個list, ... import numpy as np # 建立一個 numpy.ndarray, 1維陣列 a=np.array([1,3,4,2,1]) ...
#18. Python套件
import numpy as np wrong = np.array(1,2,3) a=np.array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) #整數宣告 b=np.array([[ 0, 1, 2, 3, 4], ...
#19. numpy二維陣列 - 軟體兄弟
numpy 二維陣列, NumPy 裡面的Array 與Python 原生List 不同,他是固定大小的,不像Python List 可以動態增減。因此,要改變大小只能刪除原先的多維陣列.
#20. array --- 高效率的數值型態陣列— Python 3.10.0 說明文件
將External Data Representation (XDR) 的資料包裝與解開包裝,這用在一些遠端操作的系統(remote procedure call systems)。 NumPy. NumPy 套件定義了另一個陣列型態 ...
#21. [Python]初心者筆記3(numpy.array的操作效果類似 ... - 點部落
[Python]初心者筆記3(numpy.array的操作效果類似LINQ,array快速宣告法,用array畫曲線圖)
#22. NumPy 103:更多的基礎陣列處理技巧. 如何重塑外觀、複製
NumPy is the fundamental package for scientific computing with Python. ... 在切割或重新宣告的情境中都是創建陣列的View,而非複製另一個陣列, ...
#23. python numpy - w3c菜鳥教程
同一個numpy陣列中所有元素的型別必須是相同的。 簡單用法:. 1、引入、宣告. >>> from numpy import * ## 匯入包. >>> a=array([1,2,3]) ## 宣告1*3 ...
#24. python 陣列
NumPy 的array是NumPy中名為ndarray的Class所定義的,而這個array當然支援多維度 ... 陣列的用法要宣告(declare)陣列(在Python中我們目前用的是「 串列」)的語法.
#25. python 宣告陣列 - Toky
無需先在Python 中宣告內容。. 陣列元素可以通過array.index (x) 函式訪問,其中x 是陣列的索引。. 同樣,也可以使用. import numpy as np. 建立一個陣列,並給予一些 ...
#26. python array 宣告文章資訊整理 - 免費軟體資源
python array 宣告,Python Tutorial 第二堂(1)數值與字串型態<< 前情此文件已有新版,詳見〈Python 3 Tutorial 第二堂(3)容器、流程、for 包含式...
#27. 數列運算— 新手村逃脫!初心者的Python 機器學習攻略1.0.0 ...
創建 ndarray 的方法有二種:一是使用 np.array() 將既有的 list 轉換成為 ndarray ... ndarray 有一個重要的預設特性為「不複製」,不論在切割或重新宣告的情境中都是 ...
#28. python中np模組的應用? - 劇多
numpy.array( object , dtype = None , ndmin = 0 ,copy = True , order ... 很多時候可以宣告axis。axis=0,表示沿著第0 軸進行操作,即對每一列進行 ...
#29. 簡明Python Numpy 入門教學 - TechBridge 技術共筆部落格
Numpy 可以產生一維、二維陣列進行向量(vector)和矩陣(matrix)運算,其在大量運算時有非常優異的效能。 其中Numpy 中最重要的就是 ndarray 物件和 ...
#30. python 之numpy 模組詳細講解及其應用案例 - tw511教學網
該博文總共介紹3個常用的numpy方法(array,linspace,arange),同時每個方法都會有 ... import numpy as np """ 業界最通用的操作,宣告一個別名np ...
#31. python | 博智教學
指令不使用分號結尾 不須宣告變數,但必要時可以用給初始值的方式暗示型別 ... python 基本型態中沒有陣列,陣列是用numpy.array class 來實作的。
#32. 陣列編程- 維基百科,自由的百科全書
The NumPy array: a structure for efficient numerical computation. Computing in Science and Engineering (IEEE). 2011, 13 (2): 22–30.
#33. Theano · parallel_processing
import theano.tensor as T from theano import (function, pp) import numpyt as np x = T.dscalar('x') # 宣告純量符號變數x, 預設type為double print (type(x)) ...
#34. NumPy中array和matrix用於矩陣乘法時的區別
NumPy 中array和matrix用於矩陣乘法時的區別,软件开发平台及语言笔记大全(超详细)
#35. Tag : Python - Terrence的宅宅幻想
簡單來說,我可以在一個函數或變數宣告的時候,用@打包起來替他賦予一個新功能, ... numpy as np #網路上找的dataset 可以線性分割 dataset = np.array([ ((1, -0.4, ...
#36. 一
相關矩陣(Correlation matrix). 單位矩陣(Identity matrix) ... 在Python語言中,已知「a=numpy.array([[1, 3],[2, 4]])」,則3*a意義為何? ... 宣告. 執行建構式.
#37. python宣告一個陣列python 宣告陣列 - 程序員學院
python宣告一個陣列python 宣告陣列,如何在python 我無法在文件中找到對 ... 陣列操作python中三維陣列的拆分,可以轉換list為numpy.array使用或的 ...
#38. python 輸入陣列– python 陣列宣告 - Ourfitne
Python numpy array 陣列, 本篇要介紹使用python 搭配numpy 模組存放陣列資料,讓你在處理大型陣列資料時能夠快速地處理!, 而且最厲害的是還可以支援陣列運算唷!, ...
#39. Python 筆記
NumPy & SciPy | documentation ... Python只要宣告變數名稱,不用宣告形態,它會自己根據變數的值來判斷形態為何注意變數名稱 ... 大致上可以把list想成高級array?
#40. python 二維陣列numpy - Niokbt
關於python中的二維陣列,主要有list和numpy.array兩種。 ... 裡面說Python 可以達成多維陣列不過怎麼試都試不出來想要一個int array[100][2] 的陣列要怎麼宣告呢?
#41. [心得] Scipy+Numpy,在Python裡面使用C語言 - 批踢踢實業坊
\\n");""" weave.inline(code) 當然, 這看起來像脫褲子放屁XD 不過如果有一個或好幾個很長的numpy array, 就可以用weave.blitz 結合weave.inline 直接 ...
#42. Advanced Materials of Python
這種語法也稱為function expression,這與用def宣告的function一樣 ... 1: import numpy as np 2: np1 = np.array( [1, 2, 3, 4] ) 3: print(np1).
#43. Python - List - 呆奇士
Last Update: 2016/02/09 21:28+08. Intro. List 宣告方法 my_list = [0,1,2,3,4,5,6,7,8,9] P.S. 陣列物件: numpy.array. Content. Append.
#44. NumPy是什麼? - 理解Python中的數據類型與運作原理 - Matters
靜態類型的語言:每個變數都要明確的宣告,如C、Java; 動態類型的語言:沒有[每個 ... Python List 與NumPy Array 比較- 動態列表與固定列表間的比較 ...
#45. 陣列
Kotlin陣列裏號稱可以存放不同的資料型態。其實是騙人的,因為他是被宣告成Any fun main(args:Array<String>) { var a:Array<Any> = arrayOf("abc", ...
#46. Python numpy函数:zeros()、ones()、empty()
ones是numpy的一个内置函数,作用是生成参数为一的数组。英文解释: Return a new array of given shape and ...
#47. 淺入淺出資料分析之Hello NumPy系列(一) - ITW01
顯示的宣告資料型別,float型別資料會自動轉換為int data_list = [[1.1, 3.1, 2.1], [3.2, 4.2, 5.2]] data_arr4 = np.array(data_list, ...
#48. 細說NumPy陣列的四種乘法的使用 - IT145.com
但是,如果孔乙己說NumPy陣列有四種乘法的時候,各位大約就是這樣的表情了吧? ... 先宣告一下:星乘這個說法,是我自己創造的,因為我實在不知道陣列的這種乘法有沒有 ...
#49. [問題] 實作二維陣列- Python
不是很懂這種宣告以及使用方法謝謝回答的各位了,caps5302::[[0 for m in ... 9 F → weslychu:要直接寫就list = numpy.array([[1,2,3],[4,5,6]]) 10/29 ...
#50. Numpy array是一種多維陣列物件 - Chiustin
Numpy array 是一種多維陣列物件,由行列組合而成。 ... Python NumPy Array vs. List ... 上面例子證明list宣告用了14000,然而Numpy只用了4000。
#51. TensorFlow 基礎— 简单粗暴TensorFlow 2 0.4 beta 文档
import numpy as np X_raw = np.array([2013, 2014, 2015, 2016, 2017], ... SGD(learning_rate=5e-4) 宣告了一個梯度下降優化器(Optimizer),其學習率為5e-4。
#52. Python Array 宣告 - Kaelxalhec
In the following example the length of the array is three. NumPy中的陣列和Python內建的陣列有什麼不同呢本文將介紹NumPy的陣列和Python的陣列 ...
#53. python 二維陣列取值
Python 實現Numpy中找出array中最大值所對應的行和列淺談Python3 ... 取出最大元素取出最小元素將每一個陣列1 宣告一維陣列10-2-2 宣告陣列時設定初值與改變初值10-2-3 ...
#54. 臥槽!圖解NumPy,這一篇就夠了 - sa123
乍一看,NumPy陣列類似於Python列表。它們都可以用作容器,具有獲取(getting)和設定(setting)元素以及插入和移除元素的功能。
#55. Python的陣列是什麼? - 是嗎?
最近在看Python的學習影片,課程中老師談論到關於List的用法,並且使用numpy中 ... 為何需要陣列(Array)表示資料? ... int iarr[10]; // 宣告10個元素的整數陣列.
#56. 將兩個np.array壓縮成陣列 - 有解無憂
我試圖將以下兩個np.arrays 組合成一個陣列: prediction_score = [0.99764085 0.26231623 0.07232302] prediction_boxes = [[282.25906 79.13187 ...
#57. Numpy 筆記
Python 的使用上時常會用到numpy這個model 而這個套件使用上方法很多加上做專題時有用到但實… ... a = np.array([ 2 , 23 , 4 ],dtype = np. float ).
#58. Day20 - 人工智慧I.
一開始先宣告我們的資料集,使用 numpy 這個高階矩陣運算工具~. import numpy as np X_tr = np.array([[0,0],[0,1],[1,0],[1,1]]) print(X_tr) ...
#59. 用Numba 加速Python 程式碼,變得像C++ 一樣快
所以,您也可以在您的計算中使用numpy,並加快整體計算,因為python 中 ... 儲存到numpy 陣列中所浪費的時間,Numba 提供了一些 函式 來宣告並將陣列 ...
#60. Python 與OpenCV 基本讀取、顯示與儲存圖片教學 - GT Wang
首先引入NumPy 與OpenCV 的Python 模組: ... 以 cv2.imread 讀進來的資料,會儲存成一個NumPy 的陣列,我們可以用 type 檢查一下:
#61. python numpy array random 隨機排列(打亂訓練數據) - 台部落
對numpy.array重新排列: numpy.random.shuffle(x):修改本身,打亂順序import numpy as np arr = np.array(range(0, 21, 2)) np.random.sh.
#62. 使用計算 - IBM
Pandas 建置在NumPy 之上。 Analytics Service 中的許多函數都包含NumPy 陣列。 Pandas 提供的數種預先定義方法可 ... 簡式函數:包含多行程式程式碼的函數宣告區塊。
#63. 自己的NumPy 自己做!從零開始打造多維陣列- SITCON 2020 ...
自己的NumPy 自己做!從零開始打造多維陣列. 張安邦. 40 min. R2. 14:20. 我也能讓Python 幫忙操控電腦嗎? ... 宣告式編程風味模型化指令式編程程式碼.
#64. Python Week 5
Numpy whole array mask vs. 簡單迴圈+if ... 利用whole array mask 取代x-y的迴圈計算 ... 秘訣三:debug自訂函數時,用#把第一列的函數宣告列(def.
#65. python 陣列Python - Ddmba
格式: 根據陣列的結構而言,孤兒程序的相關概念此NumPy 陣列的前兩個維度分別是 ... 型態陣列名稱[陣列大小]; 資料型態陣列名稱[陣列大小][陣列大小]; 宣告陣列變數 ...
#66. python 二維陣列
Python中的二維陣列例項(list與numpy.array, codertw.com ... [4, None]] 我以為我的宣告是正確的結果的確是成功宣告二維陣列但是要assign值卻有點怪怪的我只想指定(0, ...
#67. python 宣告[Python] - Uhlwc
[純教學系列文5]在”Python”中使用“array” (Array) @ 新手小白用Python來做資料 ... 本篇紀錄如何使用python numpy 的np.std 來計算陣列標準差standard deviation 的 ...
#68. #Python Array 跟List 宣告問題 - 課程板 | Dcard
最近接觸Python ,想要實現在C中的,宣告temp陣列,其大小為8 的一維陣列,但是Python 好像沒有陣列的概念,只有動態的List功能,也就是如果我要實現 ...
#69. 在NumPy中如何创建一个空的数组/矩阵? - 纯净天空
如何以我通常使用列表(List)的方式使用Numpy数组或矩阵? 我想创建一个空 ... import numpy >>> a = numpy.zeros(shape=(5,2)) >>> a array([[ 0., 0.] ...
#70. python 字串陣列 - Nordahl
Python是以list的方式實現動態陣列宣告的方式只要使用[]包起來即可,也>>> a 隱私 ... NumPy的array是NumPy中名為ndarray的Class所定義的,而這個array當然支援多維度 ...
#71. TensorFlow 基本運算1/2 - 老尉子的部落格
InteractiveSession() a = np.array([[1,2,3],[4,5,6]]) const ... 伴隨化)就是取共軛並轉置、是不是稀疏矩陣宣告True時可對rank-2 的乘最佳化。
#72. python 二維陣列for 多維矩陣轉一維矩陣 - Christa Belle
python中字串變二維陣列的例項講解基於Python Numpy的陣列array和矩陣matrix詳解 ... 好吧,則會造成記憶體空間的浪費,就是宣告一個整數的二維陣列, 你會發現他跟 ...
#73. python 二維陣列輸入Hello - Nejvk
若宣告maze[3][5] 的話,第二個元素其索引值為1,H,input().split()) 以上這篇Python numpy可以說是Python運用於人工智慧和科學計算的一個重要基礎,b中儲存的是整數 ...
#74. python 二維陣列numpy二維陣列 - Cuya
關于python中的二維數組,主要有list和numpy.array兩種。 ... 名稱與兩個索引值來指定存取陣列元素,宣告方式與一維陣列類似: int maze[5][10]; 上面這個宣告會配置5 ...
#75. python 陣列宣告Python - Zzkvs
NumPy 1.14 教學– #07 用陣列當索引取值(Indexing with array of indices) 2018-07-14 2018-09-04 Andy Wang 0 NumPy 1.14 教學– #06 簡易指定(Simple Assignments), ...
#76. python 反矩陣– python陣列宣告
python 反矩陣– python陣列宣告. Mind No Comments ... 用numpy,linalg,inv 示例代碼如下所示, import numpy as np M = np,array[[1,0,0. Python 运算符.
#77. 矩陣反轉– 反轉型態– Amrbards
Vector and Matrix 2. PDF 檔案. php. 第3 章– 陣列與字串陣列操作JavaScript 的陣列宣告非常簡單,就是用[ ] 所框起來的一連串資料。 以下我們啟動node之後用交談的 ...
#78. python 二維陣列輸入Python - Cxstra
Python Numpy.where() 函式示例程式碼:numpy.where() 與1-D 陣列的關係示例程式 ... 元素,二維陣列使用陣列名稱與兩個索引值來指定存取陣列元素,宣告方式與一維陣列 ...
#79. 陣列(Array)
若陣列只有一維,稱之為向量. (vector);陣列為二維,則稱之為矩陣(matrix)。 壹、向量. 一、建立向量的基本函數. 指令. 說明. [ ].
#80. python 二維陣列2-7a
python中字串變二維陣列的例項講解基於Python Numpy的陣列array和矩陣matrix詳解 ... 結果的確是成功宣告二維陣列但是要assign值卻有點怪怪的我只想指定(0,若要存取 ...
#81. 用Python快速上手資料分析與機器學習(電子書)
1 1 1 2 2 3 3 4 4 5 5 array([0, 1, 2, 3, 4, 5]) ravelravel 方法與方法與 ... 在建立陣列之際未宣告類型,將自動宣告為宣告類型,將自動宣告為 np.int64。np.int64。
#82. 如何在NumPy中創建一個空數組/矩陣? - 2021
在添加行的情況下,最好的選擇是創建一個與數據集最終大小一樣大的數組,然後逐行向其中添加數據: >>> import numpy >>> a = numpy.zeros(shape=(5,2)) >>> a array([[ ...
#83. Python NumPy 多維陣列ndarray 基礎By 彭彭
喜歡彭彭的教學影片嗎?點擊「加入」按紐取得更多會員服務哦。加入會員:https://www.youtube.com/channel/UCguZS ...
#84. 實用Python程式設計-第二版(電子書) - 第 3-3 頁 - Google 圖書結果
Numpy 的陣列型態為 ndarray。ndarray 的重要屬性包括: ▻ ndarray.ndim:陣列的維度,也稱為 rank。 ... 請注意在宣告陣列時可以直接指定元素的資料類別。陣列在宣告時 ...
#85. Array & Structure - 國立高雄科技大學第一校區
因為array b宣告時給定array長度([5]),而function printArray()只接受無定義長度的array,所以無法使用,除非定義argument為a[5]int。
#86. 【資料結構-題庫】陣列 - 程式設計教育農場
【2-3 二維陣列的觀念,以下不在期中考的範圍內】. 1.二維陣列宣告int Score[23],陣列中含有多少元素:. (A)2. (B)3.
#87. python:从NumPy 2D陣列中删除重複的列和行 - Codebug
coordskeys = np.array(list(set([tuple(x) for x in coordskeys]))) ... numpy_indexed軟體包(免责宣告:我是它的作者)將user545424發佈的解決方案 ...
#88. 外侨式接线适用于电源线路较长的变电站。A.正确B.错误 - 搜题
A.拒收全部11000公吨大米,宣告合同无效B.收取11000公吨大米,但须就对方多交付 ... import numpy as np arr4 = np.array([[1,10,100],[2,20,200],[3,30,300]]) ...
#89. 人工智慧與影像處理 - - 使用Keras框架 - 第 8 頁 - Google 圖書結果
... 轉換成陣列: 1. import numpy as np 2. e=[1,2,3,4] 3. ee=np.array(e) 4. print(ee) 5. print(type(ee))第 1 行:先匯入 numpy 套件並將其命名為 np。第 2 行:宣告 ...
#90. D2:Numpy 陣列中不同的資料型態- Python資料科學程式- Cupoy
今天的內容會帶大家了解Numpy 套件Array 的陣列定義、常用屬性、重要特性Numpy 使用更少的空間儲存資料,對於元素的查找更加快速高效支援了矩陣相關的數學運算, ...
#91. SLMT's Tutorial Blog: 小山的C# 教學-第22課-Array 陣列
所有Reference Type 的預設值都是null,也就是說,如果你一開始宣告了一個變數object,然後還沒有用new 來產生任何物件。那這個object 裡面存的值就是null ...
#92. Numpy入門矩陣計算入門(內積、外積) | Python攻略
ndarray可以用+, -, *, / 來進行加,減,乘,除的計算。 import numpy as np x = np.array([2 ...
#93. 實作陣列(Array)、向量(Vector)、矩陣(Matrix) | 開放原始碼技術 ...
由於Lua 僅支援table 這種資料結構,若要在程式中使用其他資料結構,需用模擬的方式;除非資料量大,用table 模擬通常也夠用。Lua 官方教材對於資料結構的章節.
#94. 增壓的Python|讓程式碼進化到全新境界(電子書)
在第 12 章將會描述 numpy 套件的使用,它支援使用高度優化的函式來操作多維陣列,特別是數字陣列(或矩陣)。 3.18.1 不平衡矩陣雖然您可能經常建立的矩陣都是矩形的, ...
#95. pea 醫學
心跳停止是在醫學上可以判定臨床死亡或宣告死亡的條件之一。. 此頁由a醫學百科用戶 ... 你也將學會如何使用NumPy 和scikit-learn 等Python 函式庫自己實作PCA。 adj.
numpy array宣告 在 [心得] Scipy+Numpy,在Python裡面使用C語言 - 批踢踢實業坊 的推薦與評價
最近開始用python進行一些數據分析...
想跟各位分享一下 使用Scipy + Numpy 將 C語言整合至python的心得:
python在某些情況下的速度實在是讓人無法忍受
(ex. 對大型List做兩三層迴圈以上的數學運算)
為了增強python在這方面的功能
有兩個好用的module: SciPy & Numpy
numpy 基本上是使用自訂的 "array"
相較於python list, numpy array裡的元素資料型態是一致的
所以在記憶體的使用上有較高效率
而且內建的 "universal function" (ufunc)功能
可以一次對整個numpy array做簡單的數學函數運算
可惜如果運算稍微複雜一點時,
numpy 提供的 frompython (將自訂函數轉成universal function)
相較於使用python本身去寫並沒有快多少
速度上還是不如C語言
這個時候Scipy就可以出場了...
Scipy本身的功能也相當強大,比如說scipy.matplotlib用來繪圖就蠻方便的
其中的scipy.weave更提供了直接在python 裡面使用C語言(and C++)的功能:
舉例來說, hello world:
from scipy import weave
code="""printf("Hello World! \\n");"""
weave.inline(code)
當然, 這看起來像脫褲子放屁 XD
不過如果有一個或好幾個很長的numpy array,
就可以用weave.blitz
結合weave.inline 直接傳到在python裡面寫的C code裡
舉例:
import numpy as np
from scipy import weave
a=np.arange(0,1000,dtype=float).reshape(500,2)
#產生((0,1),(2,3),(4,5)...(998,999))的500*2矩陣,並指定資料型態為float
code="""
float k=0.0;
for(int i=0;i<500;i++)
{
k+=a(i,0)+a(i,1); //直接在code裡面使用剛剛產生的矩陣
}
return Py_BuildValue("d", k); //傳回一個float給python
"""
print weave.inline(code,
['a'],
type_converters=weave.converters.blitz,
compiler='gcc')
就會出現從0 加到 999的值囉
如果要傳回python list,
可以在C code裡宣告
ex.
PyObject *m = PyList_New(0);
對這個list 可以像在python 裡面一樣操作,
如: PyList_Append(m, PyFloat_FromDouble(k));
因為是在C語言裡面,所以資料型態要指定好
關於如何增加python的效率, 有興趣的人可以看看這邊
https://www.scipy.org/PerformancePython
個人是覺得簡單但是大量的運算
用weave.inline 搭配 numpy, weave.blitz是相當方便的組合
cython or SWIG速度比inline快上一點, 但是使用上稍微複雜一些(對我來說 XD)
如果是使用windows的話 python(x,y)裝了就可以直接用scipy.weave & numpy了
用linux的話就是手動裝scipy & numpy,
要使用weave的話得多裝python-dev
還有要更改這個
/usr/lib/python2.6/dist-packages/scipy/weave/blitz/blitz/blitz.h
在#include <stdio.h> 之前添加:
#include <cstdlib>
以上拋磚引玉
希望有更多高手可以分享使用python 做科學研究的心得 ~OTZ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 129.170.26.186
※ 編輯: painkiller 來自: 129.170.26.186 (04/09 08:20)
※ 編輯: painkiller 來自: 129.170.26.186 (04/09 08:21)
... <看更多>