numpy笔记

    科技2026-02-09  1

    文章目录

    属性方法1. arange(起始值,中止值,步长)2. linspace(起始值,中止值,数值个数)3. 向量运算4. 向量筛选5. 矩阵间乘法6. 随机数矩阵7. 矩阵最大值,最小值,求和8. 求最大值,最小值索引9. 矩阵转置10. 截断函数11. 索引12. 循环13. 将矩阵转变为向量14. 向量合并15. 插入新的维度16. 矩阵分割17. copy()

    属性

    ndim: 维数shape: 行数和列数size元素个数 可以在使用array函数时指定 dtype参数

    方法

    1. arange(起始值,中止值,步长)

    区间为前闭后开 c = np.arange(0,12,2).reshape(2,3) c2 = np.arange(15,5,-1) c,c2

    2. linspace(起始值,中止值,数值个数)

    区间前闭后闭 d = np.linspace(0,2,5) d

    3. 向量运算

    直接加减乘除即可 a = np.array([10,20,30,40]) b = np.arange(4) print(a-b)

    幂运算用 两个乘号(**)表示 print(a**2)#表示a的平方

    4. 向量筛选

    a = np.array([10,20,30,40]) print(a < 25) #查看a中小于25的值,输出一个布尔列表

    5. 矩阵间乘法

    np.dot(矩阵a,矩阵b)a.dot(b)

    上述两种方法皆可

    c = np.arange(12).reshape(3,4) d = np.arange(13,25).reshape(4,3) e = np.dot(c,d) e2 = c.dot(d) e,e2

    6. 随机数矩阵

    f = np.random.random((2,3))

    7. 矩阵最大值,最小值,求和

    可以对全局求最大,最小,求和;也可对某行或者某列进行求最大,最小,求和。axis参数指定数轴 f = np.random.random((2,3)) print(np.sum(f)) print(np.min(f,axis = 0)) # AXIS = 0代表每列 print(np.max(f,axis = 1)) #AXIS = 1代表每行

    8. 求最大值,最小值索引

    f = np.random.random((2,3)) print(f) print(np.argmin(f,axis = 1)) print(np.argmax(f,axis = 0))

    9. 矩阵转置

    transpose()函数矩阵的T属性 g = np.arange(20,4,-2).reshape(2,-1) print(g) print(g.transpose()) print(g.T)

    10. 截断函数

    clip(min,max):将矩阵中元素大于max的赋值为max,小于min的赋值为min h = np.arange(20,10,-1).reshape(2,5) h = h.clip(13,18) #h.clip(min,max) h

    11. 索引

    矩阵不指定列数的话,默认为一整行可以用:符号来表示全部 i = np.arange(3,15) i = i.reshape(3,4) print(i) print(i[2]) # 输出了第三行 print(i[1][2]) print(i[:,2]) #可以用 :来表示所有数 print(i[1,1:2]) #区间前开后闭

    12. 循环

    for 循环默认指定迭代一行,没有直接的列迭代如果想遍历矩阵每个元素,就先将矩阵转化为向量 i = np.arange(3,15) i = i.reshape(3,4) for row in i: print(row)

    13. 将矩阵转变为向量

    flatten() i = np.arange(3,15) i = i.reshape(3,4) print(i) print(i.flatten())

    14. 向量合并

    vstack(向量a,向量b):上下合并hstack(向量a,向量b):左右合并 j = np.array([1,1,1]) k = np.array([2,2,2]) print(np.vstack((j,k))) #上下合并 print(np.hstack((j,k))) #左右合并

    15. 插入新的维度

    在行或列插入 np.newaxis 表示在行或者列插入一个维度,具体可用shape属性查看 j = np.array([1,1,1]) j1 = j[np.newaxis,:] j2 = j[:,np.newaxis] print(j) print(j1.shape) print(j2) print(j2.shape)

    16. 矩阵分割

    np.split( 矩阵,划分块数,axis):将矩阵通过指定的轴均等划分为目标块数,如果不能均等则报错;axis = 0表示水平划分;axis = 1表示垂直划分

    np.vsplit(矩阵,块数):横向划分,必须均等划分

    np.hsplit(矩阵,块数):纵向划分,必须均等划分

    np.array_split() : 参数同np.split() ,不过可以不均等划分

    l = np.arange(12).reshape(3,4) print(l) print(np.split(l,3,axis = 0)) # 行划分 print(np.split(l,2,axis = 1)) #列划分 # split必须进行均等分割 print(np.vsplit(l,3)) #横向分割 print(np.hsplit(l,2)) #纵向分割 # vsplit或者hsplit也必须均等分割 print(np.array_split(l,3,axis = 1)) #array_split 进行不均等的分割

    17. copy()

    向量,矩阵的赋值但不关联(如果只是简单等号赋值,当数其中一个数据改变,其他也会跟着改变) m = np.array([1,2,3]) n = m m[0] = 5 print(n) # 当m改变,n跟着m一起改变 n[0] = 10 print(m) #当n改变,m也跟着n一起改变

    m = np.array([1,2,3]) n = m.copy() #只是复制,但不会关联 m[0] = 5 print(n) # 当m改变,n不变 n[0] = 10 print(m) #当n改变,m不变

    Processed: 0.016, SQL: 9