当前位置: 首页 > news >正文

python基础知识(十三):numpy库的基本用法

目录

  • 1. numpy的介绍
  • 2. numpy库产生矩阵
    • 2.1 numpy将列表转换成矩阵
    • 2.2 numpy创建矩阵
  • 3. numpy的基础运算
  • 4. numpy的基础运算2
  • 5. 索引

1. numpy的介绍

numpy库是numpy是python中基于数组对象的科学计算库。

2. numpy库产生矩阵

2.1 numpy将列表转换成矩阵

import numpy as nparray = np.array([[1, 2, 3],[4, 5, 7]])  # 将列表转换成矩阵
print(array)  # 输出矩阵
print('number of dim', array.ndim)  # 输出矩阵的维度
print('shape', array.shape)  # 输出矩阵的形状
print('size', array.size)  # 输出矩阵的大小

在这段代码中,首先导入numpy库,然后使用array()方法将列表转换成矩阵。
在这里插入图片描述

2.2 numpy创建矩阵

  • 使用array()方法产生一维和二维矩阵
import numpy as np
# 一维矩阵
a = np.array([2, 3, 4], dtype=np.int64)
print(a, a.dtype)# 二维矩阵
a = np.array([[1, 2, 3],[4, 5, 6]])
print(a)

在这里插入图片描述

  • 使用zeros()方法产生全0矩阵
# 0矩阵
a = np.zeros((3, 4))
print(a)

在这里插入图片描述

  • 使用ones()方法产生全1矩阵
# 1矩阵
a = np.ones((3, 4))
print(a)

在这里插入图片描述

  • 使用arrange()方法产生均匀矩阵、
# 均匀矩阵
a = np.arange(10, 20, 2)  # 10-20,步长为2
print(a)
a = np.arange(12).reshape((3, 4))  # 将形状改变成3*4
print(a)

在这里插入图片描述

  • 使用linspace()方法产生一维行向量
# 一维行向量
a = np.linspace(1, 10, 6)
print(a)
a = np.linspace(1, 10, 6).reshape((2, 3))
print(a)

在这里插入图片描述

  • 完整代码
import numpy as np
# 一维矩阵
a = np.array([2, 3, 4], dtype=np.int64)
print(a, a.dtype)# 二维矩阵
a = np.array([[1, 2, 3],[4, 5, 6]])
print(a)# 0矩阵
a = np.zeros((3, 4))
print(a)# 1矩阵
a = np.ones((3, 4))
print(a)# 均匀矩阵
a = np.arange(10, 20, 2)  # 10-20,步长为2
print(a)
a = np.arange(12).reshape((3, 4))  # 将形状改变成3*4
print(a)# 一维行向量
a = np.linspace(1, 10, 6)
print(a)
a = np.linspace(1, 10, 6).reshape((2, 3))
print(a)

3. numpy的基础运算

  • 加法运算
import numpy as npa = np.array([10, 20, 30, 40])
b = np.arange(4)
print(b)
# 加法
c = a + b
print(c)

在这里插入图片描述

  • 减法运算
# 减法
c = a - b
print(c)

在这里插入图片描述

  • 乘方运算
# 乘方
b = b ** 2
print(b)

在这里插入图片描述

  • 正弦运算
# 正弦
c = 10 * np.sin(a)
print(c)

在这里插入图片描述

  • 矩阵相乘,使用*是矩阵点乘,使用dot()方法是矩阵乘法
a = np.array([[10, 20],[30, 40]])
b = np.arange(4).reshape((2, 2))
print(a)
print(b)
c = a * b  # 矩阵对应相乘,点乘
c_dot = np.dot(a, b)  # 矩阵相乘
c_dot_2 = a.dot(b)
print(c)
print(c_dot)
print(c_dot_2)

在这里插入图片描述

  • 求和运算,最大值和最小值
# 随机矩阵
a = np.random.random((2, 4))
print(a)print(np.sum(a))
print(np.max(a))
print(np.min(a))
print(np.sum(a, axis=1))  # 对每一行求和
print(np.sum(a, axis=0))  # 对每一列求和

在这里插入图片描述

  • 完整代码
import numpy as npa = np.array([10, 20, 30, 40])
b = np.arange(4)
print(b)
# 加法
c = a + b
print(c)
# 减法
c = a - b
print(c)
# 乘方
b = b ** 2
print(b)
# 正弦
c = 10 * np.sin(a)
print(c)
# 矩阵相乘
a = np.array([[10, 20],[30, 40]])
b = np.arange(4).reshape((2, 2))
print(a)
print(b)
c = a * b  # 矩阵对应相乘,点乘
c_dot = np.dot(a, b)  # 矩阵相乘
c_dot_2 = a.dot(b)
print(c)
print(c_dot)
print(c_dot_2)# 随机矩阵
a = np.random.random((2, 4))
print(a)print(np.sum(a))
print(np.max(a))
print(np.min(a))
print(np.sum(a, axis=1))  # 对每一行求和
print(np.sum(a, axis=0))  # 对每一列求和

4. numpy的基础运算2

import numpy as np
A = np.arange(2, 14).reshape((3, 4))print(A)
print(np.nanargmin(A))  # 对最小值的索引
print(np.nanargmax(A))  # 对最大值的索引
print(np.mean(A))  # 平均值
print(np.median(A))  # 中位数
print(np.cumsum(A))  # 累加和
print(np.diff(A))  # 累差
print(np.nonzero(A))  # 输出非零的数的位置
print(np.sort(A))  # 逐行进行排序
print(np.transpose(A))  # 矩阵转置
print(A.T)  # 矩阵转置
print((A.T).dot(A))  # 实对称矩阵
print(np.clip(A, 5, 9))  # A中小于5的数等于5,大于9的数等于9,其余不变
print(np.nanmean(A, axis=0))  # 对列进行计算平均数
print(np.nanmean(A, axis=1))  # 对行进行计算平均数
结果:
[[ 2  3  4  5][ 6  7  8  9][10 11 12 13]]
0
11
7.5
7.5
[ 2  5  9 14 20 27 35 44 54 65 77 90]
[[1 1 1][1 1 1][1 1 1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
[[ 2  3  4  5][ 6  7  8  9][10 11 12 13]]
[[ 2  6 10][ 3  7 11][ 4  8 12][ 5  9 13]]
[[ 2  6 10][ 3  7 11][ 4  8 12][ 5  9 13]]
[[140 158 176 194][158 179 200 221][176 200 224 248][194 221 248 275]]
[[5 5 5 5][6 7 8 9][9 9 9 9]]
[6. 7. 8. 9.]
[ 3.5  7.5 11.5]

5. 索引

import numpy as np
# 一维数组
A = np.arange(3, 15)
print(A)
print(A[3])  # 对A中的值进行索引,位置是3
# 二维矩阵
A = np.arange(3, 15).reshape((3, 4))
print(A)
print(A[1])  # 对A中的值进行索引,位置是1,为第一行的数
print(A[1][1])  # 对A中第一行第一列的数进行索引
print(A[1, 1])  # 对A中第一行第一列的数进行索引
print(A[1, :])  # A中第一行的所有的数
print(A[:, 1])  # A中第一列的所有的数
print(A[1, 1:3])  # A中第一行的1-3的数,取左不取右
# 输出矩阵中每一行的数
for row in A:print(row)# 输出矩阵中每一列的数
for col in A.T:print(col)# 输出A中每一个数
print(A.flatten())  # 将矩阵转换成一维数组
for item in A.flat:print(item)
结果:
[ 3  4  5  6  7  8  9 10 11 12 13 14]
6
[[ 3  4  5  6][ 7  8  9 10][11 12 13 14]]
[ 7  8  9 10]
8
8
[ 7  8  9 10]
[ 4  8 12]
[8 9]
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]
[ 3  4  5  6  7  8  9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14
http://www.lryc.cn/news/93282.html

相关文章:

  • 【SA8295P 源码分析】16 - TouchScreen Panel (TP)线程函数 tp_recv_thread() 源码分析
  • Python3数据分析与挖掘建模(13)复合分析-因子关分析与小结
  • 【stable diffusion】图片批量自动打标签、标签批量修改(BLIP、wd14)用于训练SD或者LORA模型
  • TCP可靠数据传输
  • Python 私有变量和私有方法介绍
  • Kotlin Lambda表达式和匿名函数的组合简直太强了
  • uniapp 小程序 获取手机号---通过前段获取
  • 面板安全能力持续增强,新增日志审计功能,1Panel开源面板v1.3.0发布
  • k8s学习-CKS考试必过宝典
  • jmeter如何将上一个请求的结果作为下一个请求的参数
  • JAVA如何学习爬虫呢?
  • 距离保护原理
  • 从微观世界的RST包文视角助力企业网络应用故障排查和优化
  • 企业微信开发,简单测试。
  • element日期选择设置默认时间el-date-picker
  • AB32VG:SDK_AB53XX_V061(3)IO口复用功能的补充资料
  • UnityVR--组件10--UGUI简单介绍
  • k8s 探针
  • 【爬虫】4.4 Scrapy 爬取网站数据
  • PureComponent和Component的区别和底层处理机制
  • python3 爬虫相关学习9:BeautifulSoup 官方文档学习
  • 物联网Lora模块从入门到精通(九)Flash的读取与存储--结题
  • STM32MP157_PRO开发板的第一个驱动程序
  • 你“被”全链路了么?全链路压测实践之理论
  • 基于Tensorflow+SDD+Python人脸口罩识别系统(深度学习)含全部工程源码及模型+视频演示+图片数据集
  • abc200 D 鸽巢原理
  • QT day1 (图形界面设计)
  • JS逆向系列之猿人学爬虫第9题-动态cookie2
  • Java ~ Reference ~ FinalizerHistogram【总结】
  • 【MySQL】一文带你了解SQL