Untitled5 (1)

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

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

import numpy as np
c = np.arange(1,13).reshape(6,2)
c
array([[ 1,  2],
       [ 3,  4],
       [ 5,  6],
       [ 7,  8],
       [ 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.dsplit(数组,份数)->(数组片段)

a=np.arange(11,20).reshape(3,3)
b=np.arange(21,30).reshape(3,3)
e=np.dstack((a,b))
e
array([[[11, 21],
        [12, 22],
        [13, 23]],

       [[14, 24],
        [15, 25],
        [16, 26]],

       [[17, 27],
        [18, 28],
        [19, 29]]])
a=np.arange(11,20).reshape(3,3)
b=np.arange(21,30).reshape(3,3)
e=np.dstack((a,b))
o=np.dsplit(e,2)
o
[array([[[11],
         [12],
         [13]],
 
        [[14],
         [15],
         [16]],
 
        [[17],
         [18],
         [19]]]),
 array([[[21],
         [22],
         [23]],
 
        [[24],
         [25],
         [26]],
 
        [[27],
         [28],
         [29]]])]

灵活选择引用

inistate =np.array([1,2,3,4])
pre_inistate = inistate[0:3]
pre_inistate
array([1, 2, 3])

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]])
c = np.array([[1,1,1,1]])
c+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 = np.array([[1,1,1],[2,2,2]])
W[1]
array([2, 2, 2])
W = np.array([[1,1,1],[2,2,2]])
W[:,1] = np.array([5,5])
W
array([[1, 5, 1],
       [2, 5, 2]])

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

delete()函数

import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
p1 = np.delete(matrix, 1, 0)
p1
array([[ 1,  2,  3,  4],
       [ 9, 10, 11, 12]])
import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
p2 = np.delete(matrix, 1, 1)
p2
array([[ 1,  3,  4],
       [ 5,  7,  8],
       [ 9, 11, 12]])
import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
p3= np.delete(matrix, 1)
p3
array([ 1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
p4 = np.delete(matrix, [0,1], 1)
p4
array([[ 3,  4],
       [ 7,  8],
       [11, 12]])

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) 
q1
array([[ 1,  2,  3,  4],
       [ 1,  1,  1,  1],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
q2 = np.insert(matrix, 0, [1,1,1], 1) 
q2
array([[ 1,  1,  2,  3,  4],
       [ 1,  5,  6,  7,  8],
       [ 1,  9, 10, 11, 12]])
import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
q3 = np.insert(matrix, 3, [1,1,1,1], 0) 
q3
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12],
       [ 1,  1,  1,  1]])

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)
m1
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12],
       [ 1,  1,  1,  1]])
import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
m2 = np.append(matrix,[[1],[1],[1]],axis=1)
m2
array([[ 1,  2,  3,  4,  1],
       [ 5,  6,  7,  8,  1],
       [ 9, 10, 11, 12,  1]])
import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
m3 = np.append(matrix,[1,1,1,1])
m3
array([ 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([5, 2, 6, 1, 4])
a2 = np.random.choice([0,1,2,3,4,5,6],5) 
a2
array([6, 1, 6, 1, 5])
a3 = np.random.choice(np.array([0,1,2,3,4,5,6]),5) 
a3
array([1, 6, 0, 5, 4])
a4 = np.random.choice([0,1,2,3,4,5,6],5,replace=False)
a4
array([6, 1, 5, 2, 0])
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([4, 3, 6, 0, 2])

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)
import numpy as np
y1=np.linspace(-10.0,10.0)
y1
array([-10.        ,  -9.59183673,  -9.18367347,  -8.7755102 ,
        -8.36734694,  -7.95918367,  -7.55102041,  -7.14285714,
        -6.73469388,  -6.32653061,  -5.91836735,  -5.51020408,
        -5.10204082,  -4.69387755,  -4.28571429,  -3.87755102,
        -3.46938776,  -3.06122449,  -2.65306122,  -2.24489796,
        -1.83673469,  -1.42857143,  -1.02040816,  -0.6122449 ,
        -0.20408163,   0.20408163,   0.6122449 ,   1.02040816,
         1.42857143,   1.83673469,   2.24489796,   2.65306122,
         3.06122449,   3.46938776,   3.87755102,   4.28571429,
         4.69387755,   5.10204082,   5.51020408,   5.91836735,
         6.32653061,   6.73469388,   7.14285714,   7.55102041,
         7.95918367,   8.36734694,   8.7755102 ,   9.18367347,
         9.59183673,  10.        ])
y2=np.linspace(1,10,10)
y2
array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])
y3 = np.linspace(1,10,10,endpoint=False)
y3
array([1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1])
y4=np.linspace(1,10,6,retstep=True)
y4
(array([ 1. ,  2.8,  4.6,  6.4,  8.2, 10. ]), 1.8)

拉平操作 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, 20,  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() 计算元素乘积

默认计算矩阵所有元素的乘积,也可以通过axis计算指定轴的乘积

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])

把矩阵大于或小于N的元素置M的技巧

技巧包括 maximum() 函数 、minimum() 函数,以及 矩阵操作的技巧

import numpy as np
x=np.array([[1,2,3],[-3,2,4],[5,-2,9]])
x
array([[ 1,  2,  3],
       [-3,  2,  4],
       [ 5, -2,  9]])
y1=np.maximum(0,x)
y1
array([[1, 2, 3],
       [0, 2, 4],
       [5, 0, 9]])
y2=np.minimum(0,x)
y2
array([[ 0,  0,  0],
       [-3,  0,  0],
       [ 0, -2,  0]])
x1=x.copy()
x1
array([[ 1,  2,  3],
       [-3,  2,  4],
       [ 5, -2,  9]])
x1[x1<0]=0
x1
array([[1, 2, 3],
       [0, 2, 4],
       [5, 0, 9]])
x2=x.copy()
x2[x2>0]=0
x2
array([[ 0,  0,  0],
       [-3,  0,  0],
       [ 0, -2,  0]])

numpy中的矩阵copy问题

import numpy as np
x=np.array([[1,2,3],[-3,2,4],[5,-2,9]])
x
array([[ 1,  2,  3],
       [-3,  2,  4],
       [ 5, -2,  9]])
x1 = x.copy() 
x1[x1 > 0] = 0
x1
array([[ 0,  0,  0],
       [-3,  0,  0],
       [ 0, -2,  0]])
x
array([[ 1,  2,  3],
       [-3,  2,  4],
       [ 5, -2,  9]])
x2=x
x2
array([[ 1,  2,  3],
       [-3,  2,  4],
       [ 5, -2,  9]])
x2[x2>0]=0
x2
array([[ 0,  0,  0],
       [-3,  0,  0],
       [ 0, -2,  0]])
x
array([[ 0,  0,  0],
       [-3,  0,  0],
       [ 0, -2,  0]])
x=np.array([[1,2,3],[-3,2,4],[5,-2,9]])
x3=x[2]
x3
array([ 5, -2,  9])
x3[2]=100
x
array([[  1,   2,   3],
       [ -3,   2,   4],
       [  5,  -2, 100]])

np.zeros_like()构造全零矩阵,无需指定大小

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

random.rand和random.rand和random.randint区别

np.random.random()
0.035219191449708975
import numpy as np
n = np.random.rand(3,4)
n
array([[0.18812057, 0.63924689, 0.06452886, 0.08073717],
       [0.34547136, 0.18508615, 0.72902191, 0.24448683],
       [0.89012067, 0.15591281, 0.24773874, 0.38508245]])
import numpy as np
x = np.random.randn(2,3)
x
array([[-1.05672026, -1.94007455,  0.58862567],
       [-0.34389036, -1.08720426, -0.5764706 ]])
y = np.multiply(0.1,np.random.randn(2,3))+0.5
y
array([[0.55611478, 0.48012453, 0.59764918],
       [0.59746533, 0.39003828, 0.56449374]])
import numpy as np
z=np.random.randint(2,9,(2,3))
z
array([[2, 8, 3],
       [5, 8, 4]])
m=np.random.randint(9,size=(2,3))
m
array([[6, 2, 1],
       [8, 5, 0]])
x='You are right'
type(x)
str
assert type(x)==str,"x is not str"
x=[1,2,3]
type(x)
list
assert type(x)==str, ‘x is not str
  File "<ipython-input-103-6017d4b62cf4>", line 1
    assert type(x)==str, ‘x is not str’
                          ^
SyntaxError: invalid character in identifier

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

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]]])

numpy.empty() 创建指定形状和数据类型且未初始化的数组

import numpy as np
x = np.empty([3,2], dtype = int)
x
array([[0, 0],
       [1, 1],
       [1, 1]])
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)
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.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]])

numpy 取整

import numpy as np
a = np.array([0.125,0.568,5.688])
np.round(a)
array([0., 1., 6.])
np.round(a,decimals = 2) 
array([0.12, 0.57, 5.69])
np.round(a,decimals=2)
array([0.12, 0.57, 5.69])
np.floor(a)
array([0., 0., 5.])
np.ceil(a)
array([1., 1., 6.])

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

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

python 广播机制

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a = np.array([[1,2,3,6],[4,5,6,6]])
a1 = a.reshape((1,2,4))
a1
array([[[1, 2, 3, 6],
        [4, 5, 6, 6]]])
b = np.array([[3,4,5,6],[1,2,3,4],[4,5,5,5]])
b
array([[3, 4, 5, 6],
       [1, 2, 3, 4],
       [4, 5, 5, 5]])
b1 = b.reshape((1,3,4)).transpose((1,0,2))
b1
array([[[3, 4, 5, 6]],

       [[1, 2, 3, 4]],

       [[4, 5, 5, 5]]])
a1
array([[[1, 2, 3, 6],
        [4, 5, 6, 6]]])
a1+b1
array([[[ 4,  6,  8, 12],
        [ 7,  9, 11, 12]],

       [[ 2,  4,  6, 10],
        [ 5,  7,  9, 10]],

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

       [[4, 5, 6],
        [7, 8, 9]]])
c.transpose(1,0,2)
array([[[1, 2, 5],
        [4, 5, 6]],

       [[3, 4, 6],
        [7, 8, 9]]])
c.transpose(1,2,0)
array([[[1, 4],
        [2, 5],
        [5, 6]],

       [[3, 7],
        [4, 8],
        [6, 9]]])
import numpy as np
a = np.array([2,2,3,4,5,5,6,7])
a[0:7:2]
array([2, 3, 5, 6])
import numpy as np
a = np.array([2,2,3,4,5,5,6,7])
a[0::2]
array([2, 3, 5, 6])
a[::-1]
array([7, 6, 5, 5, 4, 3, 2, 2])
import numpy as np
a = np.array([2,2,3,4,5,5,6,7])
s = slice(0,7,2)
a[s]
array([2, 3, 5, 6])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值