python是很慢的,因為python在執行代碼的時候會執行很多復雜的check功能,比如
b=1; a=b/0.5
這個運算看起來很簡單,但是在計算機的內部。b要先從一個整數integer轉化成一個浮點數float,才能執行a的賦值
numpy,他能把簡單好用的python和高性能的c語言合並在一起,當調用numpy功能的時候,其實調用了很多的c語言而不是純的python
其實numpy就是c的邏輯,創建存儲容器'array'的時候在c上是尋找到一連串區域來存放,但是python存放的時候則不是連續的區域,這使得
python在索引這個容器里的數據時不是那么的有效率,numpy只需要在這塊固定的連續區域前后來回走動就能拿到數據了
在運用numpy的時候我們通常不是一個一維的array來存放數據,而是用二維和三維的快來存放,因為numpy的快速矩陣相乘的運算,能將乘法分配
到計算機中的多個核,讓運算並行,從而實現多線程/多進程,這種並行的計算大大加快了運算的速度
未完待續
出處:https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/4-1-speed-up-numpy/
