博客
关于我
nump模块
阅读量:796 次
发布时间:2023-02-17

本文共 1990 字,大约阅读时间需要 6 分钟。

目录

numpy模块

numpy是Python的一种开源的数值计算扩展库。这种库可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多(该结构也可以用来表示矩阵)。

numpy库有两个作用:

  1. 区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型
  2. 计算速度快,甚至要由于python内置的简单运算,使得其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似。

约定俗成:import numpy as np

1.创建矩阵:

创建一维的ndarray对象:arr = np.array([1, 2, 3])

创建二维的ndarray对象arr=np.array([[1, 2, 3], [4, 5, 6]])

2.获取矩阵的行列

获取矩阵的行和列构成的数组arr.shape

3.切割矩阵

切分矩阵类似于列表的切割,但是与列表的切割不同的是,矩阵的切割涉及到行和列的切割,但是两者切割的方式都是从索引0开始,并且取头不取尾。

比如一个数组arr,若取第一行第一列,就是arr[1,1]

取大于5的元素,返回一个数组

print(arr[arr > 5])

矩阵按运算符取元素的原理,即通过arr > 5生成一个布尔矩阵

print(arr > 5)

4.矩阵元素的替换

矩阵元素的替换,类似于列表元素的替换,并且矩阵也是一个可变类型的数据,即如果对矩阵进行替换操作,会修改原矩阵的元素,所以下面我们用.copy()方法举例矩阵元素的替换。

5.矩阵的合并

  1. 合并两个矩阵的行,注意使用hstack()方法合并矩阵,矩阵应该有相同的行,其中hstack的h表示horizontal水平的

    print(np.hstack((arr1, arr2)))

  2. 合并两个矩阵的列,注意使用vstack()方法合并矩阵,矩阵应该有相同的列,其中vstack的v表示vertical垂直的

    print(np.vstack((arr1, arr2)))

  3. 合并两个矩阵,其中axis=1表示合并两个矩阵的行

    print(np.concatenate((arr1, arr2), axis=1))

    axis=0表示合并两个矩阵的列

    print(np.concatenate((arr1, arr2), axis=0))

6.通过函数创建矩阵

  1. 构造0-9的ndarray数组print(np.arange(10))
  2. 构造一个等差数列,取头也取尾,从0取到20,取5个数
    print(np.linspace(0, 20, 5))
  3. 构造一个等比数列,从100取到1020,取5个数
    print(np.logspace(0, 20, 5))
  4. 构造3*4的全0矩阵print(np.zeros((3, 4)))
  5. 构造3*4的全1矩阵print(np.ones((3, 4)))
  6. 构造3个主元的单位矩阵print(np.eye(3))
  7. 构造一个4*4的随机矩阵,里面的元素是随机生成的
    print(np.empty((4, 4))

7.矩阵的运算

也包含+,-,*,/,%,**n

运算符 说明
+ 两个矩阵对应元素相加
- 两个矩阵对应元素相减
* 两个矩阵对应元素相乘
/ 两个矩阵对应元素相除,如果都是整数则取商
% 两个矩阵对应元素相除后取余数
**n 单个矩阵每个元素都取n次方,如**2:每个元素都取平方

8.矩阵的转置

矩阵的转置,相当于矩阵的行和列互换。arr.transpose()

arr.T

9.矩阵的逆

矩阵行和列相同时,矩阵才可逆。

np.linalg.inv(arr)

10.生成随机数

函数名称 函数功能 参数说明
rand(d0,d1,⋯,dnd0,d1,⋯,dn) 产生[0,1)内的均匀分布的随机数 dndn为第n维数据的维度
randn(d0,d1,⋯,dnd0,d1,⋯,dn) 产生标准正态分布随机数 dndn为第n维数据的维度
randint(low[, high, size, dtype]) 产生随机整数 low:最小值;high:最大值;size:数据个数
random_sample([size]) 在[0,1)内产生随机数 size为随机数的shape,可以为元祖或者列表
choice(a[, size]) 从arr中随机选择指定数据 arr为1维数组;size为数据形状

RandomState()方法会让数据值随机一次,之后都是相同的数据

rs = np.random.RandomState(1)print(rs.rand(10))

转载于:https://www.cnblogs.com/yellowcloud/p/11178125.html

你可能感兴趣的文章
JS实现删除行按钮只有一行时不能删除
查看>>
有问题找男人帮忙- Linux下man命令
查看>>
如何复用外部shell脚本
查看>>
VTK:小部件之SeedWidgetWithCustomCallback
查看>>
Mysql学习专栏之八(从删除操作分析Mysql中的表收缩)
查看>>
JAVA集合类Collection浅析
查看>>
使用AOP给springboot项目添加日志
查看>>
Lambda表达式使用整理总结
查看>>
嵌入式软件工程师职业路线
查看>>
Fastdfs源码分析4----缓存区设计
查看>>
获取linux 主机cpu类型
查看>>
限流的算法有哪些?
查看>>
Failed to notify build listener.
查看>>
TextWiew单个线条
查看>>
Android Studio butterknife ,Zelezny @InjectView或者是@Bind
查看>>
Android Studio updating indices 一直刷新和闪烁
查看>>
基于vant-ui的时间选择器二次封装
查看>>
个人购买服务器问题?
查看>>
pwntools编写技巧
查看>>
Python开发常见漏洞
查看>>