(作业)numpy简单操作

这篇博客详细介绍了NumPy库中的一些基本操作,包括垂直和水平拆分数组、加减运算、取行操作、矩阵删除与插入、尾部添加、随机选择元素以及argmax函数的使用。此外,还涵盖了ravel()、flatten()和reshape(1,-1)的区别,以及pad函数进行填充操作的方法。内容深入浅出,适合NumPy初学者掌握数组操作技巧。
摘要由CSDN通过智能技术生成

垂直拆分:numpy.vsplit(数组,份数)->(数组片段)

import numpy as np

c
array([[ 1,  2],
       [ 3,  4],
       [ 5,  6],
       [ 7,  8],
       [ 9, 10],
       [11, 12]])
 c = np.arange(1,13).reshape(6,2)

np.vsplit(c,3)
[array([[1, 2],
        [3, 4]]),
 array([[5, 6],
        [7, 8]]),
 array([[ 9, 10],
        [11, 12]])]

水平拆分:numpy.hsplit(数组,份数)->(数组片段)

d =c.T

d
array([[ 1,  3,  5,  7,  9, 11],
       [ 2,  4,  6,  8, 10, 12]])
 np.hsplit(d,3)
[array([[1, 3],
        [2, 4]]),
 array([[5, 7],
        [6, 8]]),
 array([[ 9, 11],
        [10, 12]])]

numpy基本加减和取行操作

import numpy as np
a = np.array([1,1,1,1])
b = np.array([[1],[1],[1],[1]])
a+b
array([[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2]])
W = np.array([[1,1,1],[2,2,2]])
W[:,1]
array([1, 2])
W[:,1] = np.array([5,5])
W
array([[1, 5, 1],
[2, 5, 2]])

矩阵删除、插入、尾部添加操作(delete,insert,append)

1.delete()函数

import numpy as np

matrix=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]

p1=np.delete(matrix,1,0)

print(' p1\n' ,p1)
 p1
 [[ 1  2  3  4]
 [ 9 10 11 12]]
p2=np.delete(matrix,1,1)

print(' p2\n' ,p2)
 p2
 [[ 1  3  4]
 [ 5  7  8]
 [ 9 11 12]]
p3=np.delete(matrix,1)

print(' p3\n' ,p3)
 p3
 [ 1  3  4  5  6  7  8  9 10 11 12]
p4=np.delete(matrix,[0,1],1)

print(' p4\n' ,p4)
 p4
 [[ 3  4]
 [ 7  8]
 [11 12]]

2.insert()函数

import numpy as np
matrix=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]
q1=np.insert(matrix,1,[1,1,1,1],0)
print(' q1\n' ,q1)
 q1
 [[ 1  2  3  4]
 [ 1  1  1  1]
 [ 5  6  7  8]
 [ 9 10 11 12]]
q2=np.insert(matrix,0,[1,1,1],1)

print(' q2\n' ,q2)
 q2
 [[ 1  1  2  3  4]
 [ 1  5  6  7  8]
 [ 1  9 10 11 12]]
q3=np.insert(matrix,3,[1,1,1,1],0)

print(' q3\n' ,q3)
     q3
     [[ 1  2  3  4]
     [ 5  6  7  8]
     [ 9 10 11 12]
     [ 1  1  1  1]]

3.append()函数

import numpy as np
matrix=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]
m1=np.append(matrix,[[1,1,1,1]],axis=0)
print(' m1\n' ,m1)
 m1
 [[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [ 1  1  1  1]]
m2=np.append(matrix,[[1],[1],[1]],axis=1)
print(' m2\n' ,m2)
 m2
 [[ 1  2  3  4  1]
 [ 5  6  7  8  1]
 [ 9 10 11 12  1]]
m3=np.append(matrix,[1,1,1,1])
print(' m3\n' ,m3)
     m3
     [ 1  2  3  4  5  6  7  8  9 10 11 12  1  1  1  1]
    

np.random.choice(a, size, replace, p)

import numpy as np
a1 = np.random.choice(7,5) 
a1
array([3, 1, 0, 1, 4])
a2 = np.random.choice([0,1,2,3,4,5,6],5) 
a2
array([1, 6, 6, 6, 4])
a3 = np.random.choice(np.array([0,1,2,3,4,5,6]),5) 
a3
array([3, 0, 5, 5, 3])
a4 = np.random.choice([0,1,2,3,4,5,6],5,replace=False) # 
a4
array([0, 4, 3, 6, 5])
a5 = np.random.choice(np.array([0,1,2,3,4,5,6]),5,p=[0.1,0.1,0.1,0.1,0.1,0.1,0.4])
a5
array([6, 3, 2, 6, 6])

np.argmax(a, axis=None, out=None)

import numpy as np
a = np.array([[1,1,1],[2,2,2],[0,3,6]])
a
array([[1, 1, 1],
[2, 2, 2],
[0, 3, 6]])
b1 = np.argmax(a)
b1
8
b2 = np.argmax(a, axis=0)
b2
array([1, 2, 2], dtype=int64)
b3 = np.argmax(a, axis=1)
b3
array([0, 0, 2], dtype=int64)

拉平操作 ravel()和faltten()及reshape(1,-1)的区别联系(补充[None,:]操作)

import numpy as np
x = np.array([[1,2,3],[4,5,6],[1,2,3]])
x.flatten()
array([1, 2, 3, 4, 5, 6, 1, 2, 3]) 
x.ravel()
array([1, 2, 3, 4, 5, 6, 1, 2, 3])

x.ravel(‘F’)
array([1, 4, 1, 2, 5, 2, 3, 6, 3]) 
x.flatten(‘F’)
array([1, 4, 1, 2, 5, 2, 3, 6, 3])
x.flatten()[1] = 20
x
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3]])
x.ravel()[1] = 20
x
array([[ 1, 20, 3],
[ 4, 5, 6],
[ 1, 2, 3]])
x.reshape(1,-1)
array([[1, 2, 3, 4, 5, 6, 1, 2, 3]]) 
x = np.array([1,2,3,6,7,8])
***>>> x[None,:]
array([[1, 2, 3, 6, 7, 8]])
x[:,None] 
array([[1],
[2],
[3],
[6],
[7],
[8]])
x[np.newaxis, :]
array([[1, 2, 3, 6, 7, 8]])

np.prod() 计算元素乘积

x = np.array([[1,2,3],[2,3,4]])
np.prod(x)
144
np.prod(x,axis=1)
array([ 6, 24])
np.prod(x,axis=0)
array([ 2, 6, 12])

np.full生成形为shape的元素全为val的矩阵

import numpy as np
c=np.array([[1,2],[3,4]])
c
array([[1, 2],
       [3, 4]])
c.astype(np.float32)
    array([[1., 2.],
           [3., 4.]], dtype=float32)

np.hstack()和np.vstack()用于堆叠矩阵

import numpy as np
x=np.array([[3,4,5],[1,3,4]])
y=np.array([[1,1,1],[2,2,2]])
np.hstack((x,y))
array([[3, 4, 5, 1, 1, 1],
       [1, 3, 4, 2, 2, 2]])
np.vstack((x,y))
    array([[3, 4, 5],
           [1, 3, 4],
           [1, 1, 1],
           [2, 2, 2]])

np.meshgrid()快速生成网格

import numpy as np
x=np.array([1,3,5])
y=np.array([4,6])
XX,YY=np.meshgrid(x,y)
XX
array([[1, 3, 5],
       [1, 3, 5]])
YY
    array([[4, 4, 4],
           [6, 6, 6]])

np.newaxis在特定位置增加一个维度

import numpy as np
c=np.array([1,2,5,4])
c[:,np.newaxis]
array([[1],
       [2],
       [5],
       [4]])
c[np.newaxis,:]
    array([[1, 2, 5, 4]])

np.pad()函数进行padding操作

import numpy as np
A= np.arange(95,99).reshape(2,2)
A
array([[95, 96],
       [97, 98]])
np.pad(A,((3,2),(2,3)),'constant',constant_values=(0,0))
array([[ 0,  0,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0,  0],
       [ 0,  0, 95, 96,  0,  0,  0],
       [ 0,  0, 97, 98,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0,  0]])
b=np.array([[[1,2],[3,4]],[[3,4],[7,8]],[[4,5],[1,2]]])
b
array([[[1, 2],
        [3, 4]],

       [[3, 4],
        [7, 8]],

       [[4, 5],
        [1, 2]]])
np.pad(b,((0,0),(1,1),(1,1)),'constant' ,constant_values = 0)
    array([[[0, 0, 0, 0],
            [0, 1, 2, 0],
            [0, 3, 4, 0],
            [0, 0, 0, 0]],
    
           [[0, 0, 0, 0],
            [0, 3, 4, 0],
            [0, 7, 8, 0],
            [0, 0, 0, 0]],
    
           [[0, 0, 0, 0],
            [0, 4, 5, 0],
            [0, 1, 2, 0],
            [0, 0, 0, 0]]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值