Numpy array資料的增、刪、改、查

來源:互聯網
上載者:User
這篇文章主要介紹了關於Numpy array資料的增、刪、改、查,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

準備工作:

增、刪、改、查的方法有很多很多種,這裡只展示出常用的幾種。

>>> import numpy as np >>> a = np.array([[1,2],[3,4],[5,6]])#建立3行2列二維數組。 >>> a array([[1, 2],   [3, 4],   [5, 6]]) >>> a = np.zeros(6)#建立長度為6的,元素都是0一維數組 >>> a = np.zeros((2,3))#建立3行2列,元素都是0的二維數組 >>> a = np.ones((2,3))#建立3行2列,元素都是1的二維數組 >>> a = np.empty((2,3)) #建立3行2列,未初始化的二維數組 >>> a = np.arange(6)#建立長度為6的,元素都是0一維數組array([0, 1, 2, 3, 4, 5]) >>> a = np.arange(1,7,1)#結果與np.arange(6)一樣。第一,二個參數意思是數值從1〜6,不包括7.第三個參數表步長為1. a = np.linspace(0,10,7) # 產生首位是0,末位是10,含7個數的等差數列[ 0.   1.66666667 3.33333333 5.   6.66666667 8.33333333 10.  ] a = np.logspace(0,4,5)#用於產生首位是10**0,末位是10**4,含5個數的等比數列。[ 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]])

不同維數的數組直接相加顯然是不允許的。但是可以用一個n行列向量和一個m列行向量構造出一個n×m矩陣

>>> a = np.array([[1],[2]]) >>> a array([[1],   [2]]) >>> b=([[10,20,30]])#產生一個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]])

>>> aarray([[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]#右邊開區間array([1, 2])>>> b[:3]#左邊預設為 0array([0, 1, 2])>>> b[3:]#右邊預設為元素個數array([3, 4, 5])>>> b[0:4:2]#下標遞增2array([0, 2])

NumPy的where函數使用

np.where(condition, x, y),第一個參數為一個布爾數組,第二個參數和第三個參數可以是標量也可以是數組。

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]#修改第一行數組[1,2]為[11,22]。 >>> a[0][0] = 111#修改第一個元素為111,修改後,第一個元素“1”改為“111”。  >>> a = np.array([[1,2],[3,4],[5,6]]) >>> b = np.array([[10,20],[30,40],[50,60]]) >>> a+b #加法必須在兩個相同大小的數組鍵間運算。 array([[11, 22],   [33, 44],   [55, 66]])

不同維數的數組直接相加顯然是不允許的。但是可以用一個n行列向量和一個m列行向量構造出一個n×m矩陣

>>> a = np.array([[1],[2]])>>> aarray([[1],  [2]])>>> b=([[10,20,30]])#產生一個list,注意,不是np.array。>>> b[[10, 20, 30]]>>> a+barray([[11, 21, 31],  [12, 22, 32]])>>> c = np.array([10,20,30])>>> carray([10, 20, 30])>>> c.shape(3,)>>> a+carray([[11, 21, 31],  [12, 22, 32]])

數組和一個數位加減乘除的運算,相當於一個廣播,把這個運算廣播到各個元素中去。

>>> a = np.array([[1,2],[3,4],[5,6]]) >>> a*2#相當於a中各個元素都乘以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的行數只剩一行了。

>>> 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)效果一樣。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.