nmupy的介紹
num ----- numerical 數值化的
py ------- python
其中ndarray是numpy中非常重要的物件
n ----- 任意
d ----- 維度
array ----- 陣列
為什麼使用numpy
numpy運算效率更加快捷
ndarray的優勢:
1.儲存風格
ndarray -相同型別,因此是連續儲存的 -通用性不強
list - 不同型別 - 通用性很強
2.並行化運算
ndarray 支援向量化(並行化)運算
3.底層語言
numpy底層使用c語言編寫,內部解除了gil(全域性直譯器鎖),對陣列運算效率不受python直譯器限制。
生成陣列的方法
1).生成0、1的陣列:np.zeros()、np.ones()
2).從現有的陣列生成:
np.array()、np.copy() 深拷貝
np.asarray() 淺拷貝
三者的區別是,淺拷貝,當現有的陣列發現數值的改變時,該陣列也會發生改變,而深拷貝不會。
3).生成固定範圍的陣列
np.linspace(0,10,100) 從[0,10] 等距離 生成100個,注意0和10兩者都是閉包
np.arange(a,b,c) [a,b) c 步長,注意左閉右開1。
4).生成隨機數組
生成滿足均勻分布的隨機數組:
np.random.uniform(low,hige,size)
生成滿足正態分佈的隨機數組:
np.random.normal(β,σ,size)
知道了怎麼生成陣列,可以驗證numpy運算效率的快捷性:
import random
import time
list=[
]",for i in
range
(100000000):
list))
ndarry = np.array(
list
)#原生求和時間
t1 = time.time(
)a =
sum(
list
)t2 = time.time(
)d1 = t2-t1
#ndarray求和時間
t3 = time.time(
)b = np.
sum(ndarry)
t4 = time.time(
)d2 = t3-t4
數量越多時,效率差距會更大。
形狀修改
ndarray.reshape(shape) 返回新的ndarray,原始資料沒有修改
ndarray.resize(shape) 無返回值,對原始的ndarray進行修改
ndarray.t 轉置矩陣
資料型別的修改:
ndarray.astype(type)
ndarray序列化到本地
ndarray.tostring()
陣列的去重:
set() 利用集合的特性去重
np.unique(ndarray)
關於numpy的應用還需自己練習!
numpy入門總結2
1.array的分割 1.1 np.split 被分割的array,分割成多少片段,從哪個方向上進行分割 方法 np.split a,2,axis 1 注 1 axis 1 表示對行進行操作,對行進行分割操作,結果是,分成了好幾列 axis 0 表示對列進行操作,直接對列進行分割操作,結果是,分成了...
NumPy基礎入門學習
對於習慣使用了matlab的使用者而言,學習numpy這個python工具包付出的成本應該是不大的。numpy的基本的object是多維陣列,是乙個有同樣型別的數字等構成的一張 能夠通過元組進行索引。本篇主要列出numpy中最經常使用的一些操作。1,ndarray 型別的一些屬性 from nump...
Python的Numpy入門基礎1
numpy作為python的常用庫,主要實現陣列的計算和分析,其優點是直接進行陣列計算,相比python的巢狀列表,更加高效。在功能上,與pandas存在一定的相似性。引用庫的方法 import numpy as np 一般縮寫為np,方便後續的引用在資料分析過程中,存在建立定義 索引 切片 矩陣轉...