這篇文章主要介紹了關於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]])
>>> 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]])
# #不同維數的陣列直接相加顯然是不允許的。但可以用一個n行列向量和一個m列行向量建構出一個n×m矩陣
>>> 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]#右边开区间array([1, 2])
>>> b[:3]#左边默认为 0array([0, 1, 2])
>>> b[3:]#右边默认为元素个数array([3, 4, 5])
>>> b[0:4:2]#下标递增2array([0, 2])
#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]
np.where(condition, x, y),第一個參數為一個布林數組,第二個參數和第三個參數可以是標量也可以是數組。
>>> 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]])
改
#>>> 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]])
>>> 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. ]])
不同維數的陣列直接相加顯然是不允許的。但可以用一個n行列向量和一個m列行向量建構出一個n×m矩陣
>>> 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的行數只剩一行了。
>>> 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)效果一样。
方法三:
先分割,再按切片a=a[0]賦值。 #########rrreee#########相關推薦:#############numpy中以文字的方式儲存以及讀取資料方法#### #############################
以上是Numpy array資料的增、刪、改、查的詳細內容。更多資訊請關注PHP中文網其他相關文章!