Numpy的常用方法

Numpy(Numerical Python 的简称)式高性能科学计算和数据分析的基础包,提供了矩阵运算的功能。Numpy提供的主要功能如下:

  • ndarray----一个具有向量算术运算和复杂广播能力的多维数组对象
  • 对数组进行快速运算的标准数学函数
  • 读写磁盘数据的工具以及用于操作内存映射文件的工具
  • 非常有用的线性代数,傅里叶变换和随机数操作
  • 集成C/C++和Fortran代码的工具

注:上面提到的“广播”意为当两个不同维度的数组进行运算的时候,可以将低维的数组复制成高维数组参与运算。

下面是在常用于矩阵计算的numpy方法:

(向量:vector,二维数组:matrix)

其中np是import numpy as np   ,  lg是import numpy.linalg as lg

1.创建指定一维数组

vector = np.array([1,2,3,4])
    //控制台结果
    [1,2,3,4]


2.创建指定二维数组

matrix = np.array([
    [1,'Tim'],
    [2,'Joey'],
    [3,'Frank']
])
//控制台结果
[['1' 'Tim']
 ['2' 'Joey']
 ['3' 'Frank']]

3.np.zeros() :都为0的矩阵,可以用shape=(a,b)指定矩阵的大小,dtype=int指定数据的类型,默认为float64

1.array = np.zeros(10)
    //控制台结果
    [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
2.array = np.zeros(10,dtype=int)
    //控制台结果
    [0 0 0 0 0 0 0 0 0 0]
3.array = np.zeros(shape=(3,4))
    //控制台结果
    [[0. 0. 0. 0.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]]
4.array = np.zeros(shape=(3,4),dtype=int)
    //控制台结果
    [[0 0 0 0]
     [0 0 0 0]
     [0 0 0 0]]

4.np.ones()  : 都为1的矩阵

array = np.ones(shape=(3,4))
    //控制台结果
    [[1. 1. 1. 1.]
     [1. 1. 1. 1.]
     [1. 1. 1. 1.]]

5.np.arange(0,20,2) :0为起始位,20为末位,左闭右开,2为步长

array = np.arange(0,20,2)
    //控制台结果
    [ 0  2  4  6  8 10 12 14 16 18]

6.np.linspace(0,10,5):分割矩阵

array = np.linspace(0,10,5)
    //控制台结果
    [ 0.   2.5  5.   7.5 10. ]

7.np.random

1.array = np.random.randint(0,10,10)    
    //控制台结果
    [6 7 1 0 8 1 9 0 2 3]
2.  array = np.random.randint(0,5,size=5)
    //控制台结果
    [3 1 0 2 2]
3.array = np.random.randint(4,9,size=(3,5))
    //控制台结果
    [[8 8 6 4 6]
     [5 5 4 8 5]
     [4 7 8 8 4]]

8.np.random.random():生成0~1之间的浮点数

1.array = np.random.random(6)
    //控制台结果
    [0.37403992 0.92180203 0.09131969 0.45960006 0.22629826 0.42614563]
2.array = np.random.random((2,4))
    //控制台结果
    [[0.23355572 0.78107586 0.8661805  0.31109417]
     [0.42339225 0.41739485 0.58668124 0.34782551]]

9.np.random.normal():表示的是一个正态分布,loc为正态分布的均值,scale为正态分布的标准差,size为大小

array = np.random.normal(loc=0,scale=1,size=(3,5))
    //控制台结果
    [[ 0.43657947 -1.39794193  0.1179223  -0.64183996 -0.29130984]
     [-1.33134218  0.80834521  0.58188407  0.1426738  -0.00915782]
     [-0.68626023 -1.80214324 -0.7342059   0.10136166  0.77105925]]

10.np.random.shuffle(array):随机打乱矩阵中的元素

array = np.array([
    [1,2,3],
    [4,5,6]
])
np.random.shuffle(array)
print(array)
    //控制台结果
    [[4 5 6]
     [1 2 3]]

11.np.arange().reshape()

array = np.arange(6).reshape(2,3)
    //控制台结果
    [[0 1 2]
     [3 4 5]]    

12.array.shape:获得当前数组array的行数和列数

array = np.array([
     [0,1,2],
     [3,4,5]
])
    //控制台结果
    (2, 3)

13.Numpy的切片操作:其中结果1表示,选择所有的行,而列的索引是1的数据,因此结果为10,25,40,结果3表示为选择所有的列,且行的索引是1和2的数据

import numpy as np
matrix = np.array([
    [5,10,15],
    [20,25,30],
    [35,40,45]
])
print("结果1:")
print(matrix[:,1])
print("结果2:")
print(matrix[:,0:2])
print("结果3:")
print(matrix[1:3,:])
print("结果4:")
print(matrix[1:3,0:2])
    //控制台结果
    结果1:
    [10 25 40]
    结果2:
    [[ 5 10]
     [20 25]
     [35 40]]
    结果3:
    [[20 25 30]
     [35 40 45]]
    结果4:
    [[20 25]
     [35 40]]    

14.np.eye():生成主对角线为1的矩阵

array = np.eye(4)
    //控制台结果
    [[1. 0. 0. 0.]
     [0. 1. 0. 0.]
     [0. 0. 1. 0.]
     [0. 0. 0. 1.]]

15.np.shin(a):对矩阵a中的每个元素去正弦,即sin(x)

16.np.cos(a):对矩阵a中的每个元素去余弦,即cos(x)

17.np.tan(a):对矩阵a中的每个元素去正切,即tan(x)

18.np.sqrt(a):对矩阵a中的每个元素开根号

19.np.abs(a):对矩阵a中每个元素取绝对值

20.array1.dot(array2):矩阵点乘函数,原理是array1的第一行[1,2,3]与array2的第一列[1,3,5]相乘再相加,对应第二行和第二列相乘再相加,以此类推

import numpy as np
array1 = np.array([
    [1,2,3],
    [4,5,6]
])
array2 = np.array([
    [1,2],
    [3,4],
    [5,6]
])
print(array1.dot(array2))
    //控制台结果
    [[22 28]
     [49 64]]

21.array.T:矩阵转置

array = np.array([
    [1,2,3],
    [4,5,6]
])
print(array.T)
    //控制台结果
    [[1 4]
     [2 5]
     [3 6]]

22.lg.inv(array):矩阵的逆

import numpy as np
import numpy.linalg as lg
array = np.array([
    [0,1],
    [2,3]
])
invA = lg.inv(array)
print(invA)
    //控制台结果
    [[-1.5  0.5]
     [ 1.   0. ]]

23.array.astype(float):转换矩阵的类型

array = np.array(["1","2","3"])
array = array.astype(float)
print(array)
    //控制台结果
    [1. 2. 3.]

24.array.sum():计算矩阵元素的和,矩阵的计算结果为一个一维数组,需要指定行或者列

25.array.mean():计算矩阵元素的平均值,矩阵的计算结果为一个一维数组,需要指定行或者列

26.array.max():计算矩阵元素的最大值,矩阵的计算结果为一个一维数组,需要指定行或者列

27.array.median:计算矩阵元素的中位数

28.np.argmax([1,2,6,3,2]):求array种最大值的下标

29.np.argmin([1,2,6,3,2]):求array种最小值的下标

30.返回多个指定下标的元素

1.x = np.arange(15)
ind = [3,5,8]
print(x[ind])
    //控制台结果
    [3 5 8]
2.x = np.arange(10)
np.random.shuffle(x)
ind = np.array([
    [0,2],
    [1,3]
])
print(x)
print(x[ind])
    //控制台结果
    [9 4 8 7 0 3 6 5 1 2]
    [[9 8]
     [4 7]]

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值