numpy的學習需要把初中、高中和大學的數學重新學一遍,才能學好
越學越覺得對不起各位數學老師。
import numpy as np
# 一元通用函式
arr = np.arange(10)
arr1 = np.random.randn(8)
*7print
(np.sqrt(arr)
)#np.sqrt() 開平方
(np.exp(arr)
)#np.exp() 求e^x e=2.71828182845904523536
(np.
abs(arr)
)#abs() 求絕對值 fabs()類似
(np.square(arr)
)#square() 計算每個數字的平方
(np.log(arr)
)#log,log2,log10,log1p,計算對數
(np.sign(arr)
)#sign() 計算每個數字的符號值,正數為1,負數為-1,0為0
(np.ceil(arr)
)#ceil() 計算大於等於該數字的最小整數值
(np.floor(arr)
)#floor() 計算小於等於該數字的最小整數值
(np.rint(arr1)
)#rint() 將元素保留到整數字
(np.isnan(arr)
)#isnan() 判斷陣列中是否有nan
(np.isfinite(arr)
)#isfinite()陣列是否有限 isinf() 陣列是否無限
(np.sin(arr)
)#sin(),cos(),cosh(),sinh(),tan(),tanh()等 哎,都忘了
#二元通用函式
arr1 = np.random.randn(8)
arr2 = np.random.randn(8)
np.maximum(arr1,arr2)
#maximum() 求最大值,兩個引數的ndarry的shape要完全相同
np.add(arr1,arr2)
#add() 兩個陣列相加
np.subtract(arr1,arr2)
#subtract() 陣列1-陣列2
np.multiply(arr1,arr2)
#multiply() 乘法
np.divide(arr1,arr2)
#divide()除法
# np.minimum() np.fmin() 求最小值
# np.mod() 取餘數
# np.copysign() 將第乙個陣列的符號值改為第二個陣列的符號值
# np.greater(),np.greater_equal(),np.less() np.equal(),np.less_equal(),np.not_equal() 比較大小
# np.logical_and(),np.logical_or(),np.logical_not(),np.logical_xor() 與或非異或操作
#modf:返回乙個浮點值陣列的小數部分和整數部分
arr1 = np.random.randn(8)
*7remainder, whole_part = np.modf(arr1)
#remainder:餘數,whole_part:整數
#第一張圖
import matplotlib.pyplot as plt
points = np.arange(-5
,5,0.01
)xs, ys = np.meshgrid(points,points)
z = np.sqrt(xs**
2+ys**2)
plt.figure(
)plt.imshow(z,cmap=plt.cm.gray)
plt.colorbar(
)plt.title(
"image plot of $\sqrt$ for a grid of values"
)plt.show(
)#將條件邏輯作為陣列操作
arr = np.random.randn(4,
4)print
(np.where(arr>0,
2,arr)
)#如果arr的值大於0,則改為2,否則改為-2
# 數學與統計方法
arr1 = np.random.randn(5,
4)print
(arr1.mean())
# mean() 求平均值
(arr1.mean(axis=1)
)# 計算每一列的平均值
(arr1.mean(axis=0)
)# 計算每一行的平均值
# 其他方法:
# std,var 標準差和方差
# min,max 最小值和最大值
# argmin,argmax 最大值和最小值的位置
# cumsum 從0開始元素累積和
# cumprod 從1開始元素累積積
arr2 = np.array([1
,2,3
,4,5
,6,7
(arr2)
(arr2.cumsum())
(arr2.cumprod())
(np.cumsum(
range
(101))
[-1]
)#求1-100的和
# 布林數值組的方法:
arr = np.random.randn(
100)
((arr >0)
.sum()
)#統計陣列中正值的個數
bools = np.array(
[false
,true
,false
,false])
(bools.
any())
#檢查陣列中是否有乙個true
(bools.
all())
#檢查陣列中是否全部是true
# 排序
arr = np.random.randn(10)
arr.sort(
)#對陣列中的值進行排序,由小到大
arr1 = np.random.randn(5,
3)arr1.sort(axis=1)
#沿著列的方向進行排序 如果=0,就是沿著行的方向進行排序
#集合操作
# unique(x) 計算x的唯一值,並排序
# intersect1d(x,y) 計算x和y的交集,並排序
# union1d(x,y) 計算x和y的並集,並排序
# in1d(x,y) 計算x中的元素是否包含在y中,返回乙個布林值陣列
# setdiff1d(x,y) 差集,在x中但是不在y中的元素
# setxor1d(x,y) 異或集,在x或者y中,但不屬於xy的交集的元素
ints = np.array([1
,2,3
,1,1
,2,3
,4,5
,5,2
(np.unique(ints)
)#隨機漫步:
nsteps =
1000
draws = np.random.randint(0,
2,size=nsteps)
steps = np.where(draws >0,
1,-1
)walk = steps.cumsum(
(steps.mean())
(walk.
min())
(walk.
max(
))
numpy之陣列運算
陣列之邏輯運算 可以直接對陣列進行邏輯判斷,會返回相應的bool型別陣列 通用判斷函式 三元運算子 陣列之統計運算陣列與數之間的運算 會作用到陣列中的每乙個元素上。陣列與陣列之間的運算 廣播機制 陣列在進行向量化運算時,要求陣列的形狀是相等的。當形狀不相等的陣列執行算術運算的時候,就會出現廣播機制,...
Numpy陣列運算
import numpy as np arr1 np.array 1,2,3 4,5,6 arr2 np.array 1,1,2 2,3,3 print arr1 print arr2 print arr1 arr2 兩個陣列的同位置元素相加 print arr1 arr2 兩個陣列的同位置元素相減...
numpy陣列運算
加 減 乘 除 指數運算 求倒數 取相反數 位運算 等各種運算都是在各個元素上分別進行的 加法 a numpy.array 2,4,5 b numpy.array 1,1,1 a b array 3,5,6 乘法 a b array 2,4,5 倒數 1.a array 0.5 0.25,0.2 相...