Numpy array數(shù)據(jù)的增、刪、改、查實(shí)例
準(zhǔn)備工作:
增、刪、改、查的方法有很多很多種,這里只展示出常用的幾種。
>>> import numpy as np >>> a = np.array([[1,2],[3,4],[5,6]])#創(chuàng)建3行2列二維數(shù)組。 >>> a array([[1, 2], [3, 4], [5, 6]]) >>> a = np.zeros(6)#創(chuàng)建長度為6的,元素都是0一維數(shù)組 >>> a = np.zeros((2,3))#創(chuàng)建3行2列,元素都是0的二維數(shù)組 >>> a = np.ones((2,3))#創(chuàng)建3行2列,元素都是1的二維數(shù)組 >>> a = np.empty((2,3)) #創(chuàng)建3行2列,未初始化的二維數(shù)組 >>> a = np.arange(6)#創(chuàng)建長度為6的,元素都是0一維數(shù)組array([0, 1, 2, 3, 4, 5]) >>> a = np.arange(1,7,1)#結(jié)果與np.arange(6)一樣。第一,二個(gè)參數(shù)意思是數(shù)值從1〜6,不包括7.第三個(gè)參數(shù)表步長為1. a = np.linspace(0,10,7) # 生成首位是0,末位是10,含7個(gè)數(shù)的等差數(shù)列[ 0. 1.66666667 3.33333333 5. 6.66666667 8.33333333 10. ] a = np.logspace(0,4,5)#用于生成首位是10**0,末位是10**4,含5個(gè)數(shù)的等比數(shù)列。[ 1.00000000e+00 1.00000000e+01 1.00000000e+02 1.00000000e+03 1.00000000e+04]
增
>>> a = np.array([[1,2],[3,4],[5,6]]) >>> b = np.array([[10,20],[30,40],[50,60]]) >>> np.vstack((a,b)) array([[ 1, 2], [ 3, 4], [ 5, 6], [10, 20], [30, 40], [50, 60]]) >>> np.hstack((a,b)) array([[ 1, 2, 10, 20], [ 3, 4, 30, 40], [ 5, 6, 50, 60]])
不同維數(shù)的數(shù)組直接相加顯然是不允許的。但是可以用一個(gè)n行列向量和一個(gè)m列行向量構(gòu)造出一個(gè)n×m矩陣
>>> a = np.array([[1],[2]]) >>> a array([[1], [2]]) >>> b=([[10,20,30]])#生成一個(gè)list,注意,不是np.array。 >>> b [[10, 20, 30]] >>> a+b array([[11, 21, 31], [12, 22, 32]]) >>> c = np.array([10,20,30]) >>> c array([10, 20, 30]) >>> c.shape (3,) >>> a+c array([[11, 21, 31], [12, 22, 32]])
查
>>> a array([[1, 2], [3, 4], [5, 6]]) >>> a[0] # array([1, 2]) >>> a[0][1]#2 >>> a[0,1]#2 >>> b = np.arange(6)#array([0, 1, 2, 3, 4, 5]) >>> b[1:3]#右邊開區(qū)間array([1, 2]) >>> b[:3]#左邊默認(rèn)為 0array([0, 1, 2]) >>> b[3:]#右邊默認(rèn)為元素個(gè)數(shù)array([3, 4, 5]) >>> b[0:4:2]#下標(biāo)遞增2array([0, 2])
NumPy的where函數(shù)使用
np.where(condition, x, y),第一個(gè)參數(shù)為一個(gè)布爾數(shù)組,第二個(gè)參數(shù)和第三個(gè)參數(shù)可以是標(biāo)量也可以是數(shù)組。
cond = numpy.array([True,False,True,False]) a = numpy.where(cond,-2,2)# [-2 2 -2 2] cond = numpy.array([1,2,3,4]) a = numpy.where(cond>2,-2,2)# [ 2 2 -2 -2] b1 = numpy.array([-1,-2,-3,-4]) b2 = numpy.array([1,2,3,4]) a = numpy.where(cond>2,b1,b2) # 長度須匹配# [1,2,-3,-4]
改
>>> a = np.array([[1,2],[3,4],[5,6]]) >>> a[0] = [11,22]#修改第一行數(shù)組[1,2]為[11,22]。 >>> a[0][0] = 111#修改第一個(gè)元素為111,修改后,第一個(gè)元素“1”改為“111”。 >>> a = np.array([[1,2],[3,4],[5,6]]) >>> b = np.array([[10,20],[30,40],[50,60]]) >>> a+b #加法必須在兩個(gè)相同大小的數(shù)組鍵間運(yùn)算。 array([[11, 22], [33, 44], [55, 66]])
不同維數(shù)的數(shù)組直接相加顯然是不允許的。但是可以用一個(gè)n行列向量和一個(gè)m列行向量構(gòu)造出一個(gè)n×m矩陣
>>> a = np.array([[1],[2]]) >>> a array([[1], [2]]) >>> b=([[10,20,30]])#生成一個(gè)list,注意,不是np.array。 >>> b [[10, 20, 30]] >>> a+b array([[11, 21, 31], [12, 22, 32]]) >>> c = np.array([10,20,30]) >>> c array([10, 20, 30]) >>> c.shape (3,) >>> a+c array([[11, 21, 31], [12, 22, 32]])
數(shù)組和一個(gè)數(shù)字的加減乘除的運(yùn)算,相當(dāng)于一個(gè)廣播,把這個(gè)運(yùn)算廣播到各個(gè)元素中去。
>>> a = np.array([[1,2],[3,4],[5,6]]) >>> a*2#相當(dāng)于a中各個(gè)元素都乘以2.類似于廣播。 array([[ 2, 4], [ 6, 8], [10, 12]]) >>> a**2 array([[ 1, 4], [ 9, 16], [25, 36]]) >>> a>3 array([[False, False], [False, True], [ True, True]]) >>> a+3 array([[4, 5], [6, 7], [8, 9]]) >>> a/2 array([[0.5, 1. ], [1.5, 2. ], [2.5, 3. ]])
刪
方法一:
利用查找中的方法,比如a=a[0],操作完居后,a的行數(shù)只剩一行了。
>>> a = np.array([[1,2],[3,4],[5,6]]) >>> a[0] array([1, 2])
方法二:
>>> a = np.array([[1,2],[3,4],[5,6]]) >>> np.delete(a,1,axis = 0)#刪除a的第二行。 array([[1, 2], [5, 6]]) >>> np.delete(a,(1,2),0)#刪除a的第二,三行。 array([[1, 2]]) >>> np.delete(a,1,axis = 1)#刪除a的第二列。 array([[1], [3], [5]])
方法三:
先分割,再按切片a=a[0]賦值。
>>> a = np.array([[1,2],[3,4],[5,6]]) >>> np.hsplit(a,2)#水平分割(搞不懂,明明是垂直分割嘛?) [array([[1], [3], [5]]), array([[2], [4], [6]])] >>> np.split(a,2,axis = 1)#與np.hsplit(a,2)效果一樣。 >>> np.vsplit(a,3) [array([[1, 2]]), array([[3, 4]]), array([[5, 6]])] >>> np.split(a,3,axis = 0)#與np.vsplit(a,3)效果一樣。
以上這篇Numpy array數(shù)據(jù)的增、刪、改、查實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Python常用函數(shù)中NumPy的使用
這篇文章主要介紹了關(guān)于Python常用函數(shù)中NumPy的使用,在Python中有很多常用的函數(shù),NumPy就是其中之一,那么NumPy該怎么使用,下面就一起來看看吧2023-03-03
一篇文章告訴你如何用python進(jìn)行自動(dòng)化測試,調(diào)用c程序
這篇文章主要介紹了Python實(shí)現(xiàn)性能自動(dòng)化測試調(diào)用c程序的方法,本文圖文并茂通過實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2021-08-08
python向MySQL數(shù)據(jù)庫插入數(shù)據(jù)的操作方法
這篇文章主要介紹了python向MySQL數(shù)據(jù)庫插入數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
python實(shí)現(xiàn)從字符串中找出字符1的位置以及個(gè)數(shù)的方法
這篇文章主要介紹了python實(shí)現(xiàn)從字符串中找出字符1的位置以及個(gè)數(shù)的方法,對于Python字符串操作的學(xué)習(xí)有一定的幫助與借鑒作用,需要的朋友可以參考下2014-08-08
Python turtle庫繪制菱形的3種方式小結(jié)
今天小編就為大家分享一篇Python turtle庫繪制菱形的3種方式小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
pycharm 2019 最新激活方式(pycharm破解、激活)
這篇文章主要介紹了最新2019pycharm激活方式(pycharm破解、激活),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01

