增、删、改、查的方法有很多很多种,这里只展示出常用的几种。
- import numpy as np
- 1,2],[3,4],[5,6]])#创建3行2列二维数组。a = np.array([[
- a
- array([[1, 2],
- [3, 4],
- [5, 6]])
- 6)#创建长度为6的,元素都是0一维数组a = np.zeros(
- 2,3))#创建3行2列,元素都是0的二维数组a = np.zeros((
- 2,3))#创建3行2列,元素都是1的二维数组a = np.ones((
- 2,3)) #创建3行2列,未初始化的二维数组a = np.empty((
- 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.arange(
- 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]
增
- 1,2],[3,4],[5,6]])a = np.array([[
- 10,20],[30,40],[50,60]])b = np.array([[
- 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矩阵
- 1],[2]])a = np.array([[
- a
- array([[1],
- [2]])
- 10,20,30]])#生成一个list,注意,不是np.array。b=([[
- b
- [[10, 20, 30]]
- a+b
- array([[11, 21, 31],
- [12, 22, 32]])
- 10,20,30])c = np.array([
- 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]])
- 0] # array([1, 2])a[
- 0][1]#2a[
- 0,1]#2a[
- 6)#array([0, 1, 2, 3, 4, 5])b = np.arange(
- 1:3]#右边开区间array([1, 2])b[
- 3]#左边默认为 0array([0, 1, 2])b[:
- 3:]#右边默认为元素个数array([3, 4, 5])b[
- 0:4:2]#下标递增2array([0, 2])b[
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]
改
- 1,2],[3,4],[5,6]])a = np.array([[
- 0] = [11,22]#修改第一行数组[1,2]为[11,22]。a[
- 0][0] = 111#修改第一个元素为111,修改后,第一个元素“1”改为“111”。a[
- 1,2],[3,4],[5,6]])a = np.array([[
- 10,20],[30,40],[50,60]])b = np.array([[
- #加法必须在两个相同大小的数组键间运算。a+b
- array([[11, 22],
- [33, 44],
- [55, 66]])
不同维数的数组直接相加显然是不允许的。但是可以用一个n行列向量和一个m列行向量构造出一个n×m矩阵
- 1],[2]])a = np.array([[
- a
- array([[1],
- [2]])
- 10,20,30]])#生成一个list,注意,不是np.array。b=([[
- b
- [[10, 20, 30]]
- a+b
- array([[11, 21, 31],
- [12, 22, 32]])
- 10,20,30])c = np.array([
- c
- array([10, 20, 30])
- c.shape
- (3,)
- a+c
- array([[11, 21, 31],
- [12, 22, 32]])
数组和一个数字的加减乘除的运算,相当于一个广播,把这个运算广播到各个元素中去。
- 1,2],[3,4],[5,6]])a = np.array([[
- 2#相当于a中各个元素都乘以2.类似于广播。a*
- array([[ 2, 4],
- [ 6, 8],
- [10, 12]])
- 2a**
- array([[ 1, 4],
- [ 9, 16],
- [25, 36]])
- 3a>
- array([[False, False],
- [False, True],
- [ True, True]])
- 3a+
- array([[4, 5],
- [6, 7],
- [8, 9]])
- 2a/
- array([[0.5, 1. ],
- [1.5, 2. ],
- [2.5, 3. ]])
删
方法一:
利用查找中的方法,比如a=a[0],操作完居后,a的行数只剩一行了。
- 1,2],[3,4],[5,6]])a = np.array([[
- 0]a[
- array([1, 2])
方法二:
- 1,2],[3,4],[5,6]])a = np.array([[
- 1,axis = 0)#删除a的第二行。np.delete(a,
- array([[1, 2],
- [5, 6]])
- 1,2),0)#删除a的第二,三行。np.delete(a,(
- array([[1, 2]])
- 1,axis = 1)#删除a的第二列。np.delete(a,
- array([[1],
- [3],
- [5]])
方法三:
先分割,再按切片a=a[0]赋值。
- 1,2],[3,4],[5,6]])a = np.array([[
- 2)#水平分割(搞不懂,明明是垂直分割嘛?)np.hsplit(a,
- [array([[1],
- [3],
- [5]]), array([[2],
- [4],
- [6]])]
- 2,axis = 1)#与np.hsplit(a,2)效果一样。np.split(a,
- 3)np.vsplit(a,
- [array([[1, 2]]), array([[3, 4]]), array([[5, 6]])]
- 3,axis = 0)#与np.vsplit(a,3)效果一样。np.split(a,