numpy 提供了乙個在python中做科學計算的基礎庫,重在數值計算,主要用於處理多維陣列,用於儲存和處理大型矩陣,本身是由c語言開發,比python自身的列表結構要高效的多。
高效能科學計算和資料分析的基礎包,總結:
形狀
ndarray.shape
重新改變陣列形狀
ndarray.reshape(x_dim, y_dim, z_dim,…)
陣列的維度
ndarray.ndim
itemsize輸出array元素的位元組數
numpy.itemsize
nparray.shape:
#檢視陣列的形狀維度
d=np.arange(1,7,1(6,))print(d.shape)
nparray.reshape:
#改變陣列的維度,規則1*6==2*3
d=d.reshape(2,3). #或者: d=np.reshape(d,(2,3(2, 3)))print(d.shape)
獲取陣列的維度,可使用len(nparray.shape),即元祖的維度,即numpy.itemsize
將多維陣列轉換為一維陣列方式:
自己動手:
def createonenp(nparray):實際又是自己在造輪子,可使用np自帶方法:num=1
for i in
len(nparray.shape):
num=num*nparray.shape[i]
return nparray.reshape(num)
nparray= nparray.flatten()
a=np.array([[1,2,3],[4,5,6[[1 2 3]]])print(a)
a=a.flatten()
print(a)
[4 5 6]]
[1 2 3 4 5 6]
a=np.array([i for i in range(1,7[[1 2 3])])#生產一維陣列
a=a.reshpe(2,3)
[4 5 6]]
陣列可以直接與數字進行四則運算(+、-、*、/)
即陣列裡的每乙個值分別四則運算
print(a+2)[[3 4 5]
[6 7 8]]
print(a/0)[[inf inf inf]
[inf inf inf]]
在numpy中,/0並不會報錯,
inf(infimum)表示無窮,
nan(not a number)代表未定義或不可表示的值,
這裡要注意了,陣列和陣列的計算和矩陣是不同的
矩陣的乘積:
陣列的乘積:
相同的多維陣列或直接與單維度軸相同,可以直接四則運算:
生產一維陣列
a=a.reshpe(2,3)
[[1 2 3]
[4 5 6]]
[[1 4]
[2 5]
[3 6]]
[[1 4]
[2 5]
[3 6]]
[[1 4]
[2 5]
[3 6]]
a=np.array([i for i in range(1,10)])#[[1 2 3]生產一維陣列
a=a.reshpe(3,3)
[4 5 6]
[7 8 9]]
2.1.1、取第x行
print(a[x])
print(a[1])[4 5 6]
2.1.2、取多行
print(a[[x,x]])
print(a[[0,2]])#[[1 2 3]取第一行和第三行
[7 8 9]]
2.1.3、取連續多行
print(a[x:y:z]) #連續取從x行到y行,不包括y,間隔為z
print(a[0:3])#[[1 2 3]取第一行到第四行不包括第四行,也就是前面三行,和list切片類似,左閉右開
[4 5 6]
[7 8 9]]
print(a[0:3:2])[[1 2 3]
[7 8 9]]
和取行類似
a[:,x]#取x列
a[:,x:y]#取下標為x到下標為y-1的列
a[:,x:y:z]#取下標為x到下標為y-1,間隔為z的列
a[:,[x,y]] #取下標為x,y的兩列
a[1,1]=a[1][1]
5
print(a[1:3,1:3])[[5 6]
[8 9]]
a=np.array([i for i in range(1,10)])#[[1 2 3]生產一維陣列
a=a.reshpe(3,3)
[4 5 6]
[7 8 9]]
print(a>5)[[false false false]
[false false true]
[ true true true]]
print(a[a>5])[6 7 8 9]
a[a>5]=5[[1 2 3]print(a)
[4 5 5]
[5 5 5]]
data1=np.where(a<5,1,9)#[[1 1 1]比5小的全部修改為1,其他的改為9
print(data1)
[1 9 9]
[9 9 9]]
裁剪
data2=a.clip(3,7)#[[3 3 3]小於3的替換為3,大於7的替換為7
print(data2)
[4 5 6]
[7 7 7]]
求和:nparray.sum(axis=none)
均值:nparray.mean(axis=none) 受離群點的影響較大
中值:np.median(nparray,axis=none)
最大值:nparray.max(axis=none)
最小值:nparray.min(axis=none)
極值:np.ptp(nparray,axis=none) 即最大值和最小值只差
標準差:nparray.std(axis=none)
np.argmax(nparray,axis=0)
np.argmin(nparray,axis=1)
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
a=b 完全不複製,a和b相互影響
a = b[:],檢視的操作,一種切片,會建立新的物件a,但是a的資料完全由b保管,他們兩個的資料變化是一致的,
a = b.copy(),複製,a和b互不影響
p.p1
p.p2
span.s1
span.s2
span.s3
span.s4
Numpy 庫的簡單介紹和使用
python在處理資料時,會涉及到很多線性代數的運算,比如矩陣的計算,nump的存在,大大簡化了在使用python計算的複雜性,下面簡單介紹下numpy的一些基礎。numpy庫中存在兩種資料型別,陣列 ndarray 和矩陣 matrix 生成陣列 ndarray arr np.array 1,2,...
numpy介紹 基礎操作(6)
這次教程是對python的numpy這個包做乙個介紹 numpy是python用於分析資料,處理矩陣的乙個非常實用的包,下面我將會在jupyter notebook上,一步一步實現numpy這個包的各種用法,並配上說明。這一節我們要學習的是,生成矩陣。import numpy as np impor...
numpy陣列切片介紹及使用
1.在cmd輸入 pip install numpy 2.測試一下python c import numpy 沒有報錯就正常了 numpy 最重要的乙個特點是其 n 維陣列物件 ndarray,它是一系列同型別資料的集合,以 0 下標為開始進行集合中元素的索引。ndarray物件的內容可以通過索引或...