python numpy 子数组_Python利用Numpy数组进行数据处理(一)
Numpy數組使你可以將許多種數據處理任務表達為簡潔的數組表達式(否則需要編寫循環)。用數組表達式代替循環的做法,通常被稱為矢量化。
np.meshgrid函數接受兩個一維數組,并產生兩個二維矩陣(對應于兩個數組中所有的(x,y)對):
In[1]:point=np.arange(-5,5,0.01)
In[2]:point
Out[2]: array([-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99])
In[3]:xs,ys=np.meshgrid(point,point)
In[4]:xs #行維度展示
Out[4]:
array([[-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99],
[-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99],
[-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99],
...,
[-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99],
[-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99],
[-5. , -4.99, -4.98, ..., 4.97, 4.98, 4.99]])
In[5]:ys #列維度展示
Out[5]:
array([[-5. , -5. , -5. , ..., -5. , -5. , -5. ],
[-4.99, -4.99, -4.99, ..., -4.99, -4.99, -4.99],
[-4.98, -4.98, -4.98, ..., -4.98, -4.98, -4.98],
...,
[ 4.97, 4.97, 4.97, ..., 4.97, 4.97, 4.97],
[ 4.98, 4.98, 4.98, ..., 4.98, 4.98, 4.98],
[ 4.99, 4.99, 4.99, ..., 4.99, 4.99, 4.99]])
#編寫表達式
z=np.sqrt(xs**2+ys**2)
plt.imshow報錯,說matplotlib中沒有imshow。
1.將條件邏輯表述為數組運算
numpy.where函數是三元表達式x if condition else y的矢量化版本。
In[6]:xarr=np.array([1.1,1.2,1.3,1.4,1.5])
In[7]:yarr=np.array([2.1,2.2,2.3,2.4,2.5])
In[8]:cond=np.array([True,False,True,True,False])
In[9]:result=np.where(cond,xarr,yarr)
In[10]:result
Out[10]: array([ 1.1, 2.2, 1.3, 1.4, 2.5])
#說明
cond:條件
xarr:滿足條件,用xarr對應的值替換
yarr:不滿足條件,用yarr對應的值替換。
np.where的第二個和第三個參數不必是數組,可以是標量值。在數據分析工作中,where通常用于根據另一個數組而產生一個新的數組。
#注意標量值的用法
In [18]: arr=np.random.randn(4,4)
In [19]: arr
Out[19]:
array([[ 0.34029727, -0.85125359, 0.84190462, 0.18978229],
[ 1.02542847, 1.06472262, 0.06243246, -0.62324965],
[ 1.04228861, -0.31963213, -0.48520624, -0.82195685],
[-1.37491946, 0.44900294, 0.35896568, 0.69315588]])
In [20]: np.where(arr>0,2,-2)
Out[20]:
array([[ 2, -2, 2, 2],
[ 2, 2, 2, -2],
[ 2, -2, -2, -2],
[-2, 2, 2, 2]])
#注意這里的用法,如果只改滿足條件的,不該不滿足條件的,則使用原數組
In [21]: np.where(arr>0,2,arr)
Out[21]:
array([[ 2. , -0.85125359, 2. , 2. ],
[ 2. , 2. , 2. , -0.62324965],
[ 2. , -0.31963213, -0.48520624, -0.82195685],
[-1.37491946, 2. , 2. , 2. ]])
「親,如果筆記對您有幫助,收藏的同時,記得給點個贊、加個關注哦!感謝!」
「誠邀關注“issnail”,會有驚喜哦!」
「文中代碼均親測過,若有錯誤之處,歡迎批評指正,一起學習,一起成長!」
參考書目:利用python進行數據分析
總結
以上是生活随笔為你收集整理的python numpy 子数组_Python利用Numpy数组进行数据处理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot中下面哪一个作为jp
- 下一篇: python pipeline框架_Py