【自学笔记】Numpy基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


Numpy基础知识点总览

目录

  1. 简介

    • Numpy是什么
    • 为什么使用Numpy
  2. 数组对象(ndarray)

    • 创建数组
    • 数组的属性
    • 数组的形状操作
  3. 数组的基本操作

    • 数组索引与切片
    • 数组的形状改变
    • 数组的类型转换
  4. 数学函数与统计方法

    • 数组元素的数学运算
    • 统计函数
    • 线性代数运算
  5. 广播机制

    • 什么是广播
    • 广播的规则与示例
  6. 文件操作

    • 读取与保存数组到文件
  7. 随机数的生成

    • 生成随机数的方法

1. 简介

Numpy是什么

Numpy(Numerical Python)是Python的一个开源数值计算扩展库,用于存储和处理大型矩阵。它提供了大量的数学函数和操作这些矩阵的方法。

为什么使用Numpy

  • Numpy数组在存储和计算大型数据时比Python原生列表更高效。
  • Numpy提供了大量的数学函数和线性代数运算,简化了科学计算。

2. 数组对象(ndarray)

创建数组

python 复制代码
import numpy as np

# 一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)

# 二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)

# 使用特殊函数创建数组
zeros = np.zeros((2, 3))  # 创建一个2x3的零数组
ones = np.ones((2, 3))    # 创建一个2x3的全1数组
print(zeros)
print(ones)

数组的属性

python 复制代码
print(arr2.shape)       # 输出数组的形状
print(arr2.dtype)       # 输出数组的数据类型
print(arr2.size)        # 输出数组的元素个数
print(arr2.ndim)        # 输出数组的维度

数组的形状操作

python 复制代码
# 改变数组的形状
arr2_reshaped = arr2.reshape((3, 2))
print(arr2_reshaped)

# 数组转置
arr2_transposed = arr2.T
print(arr2_transposed)

3. 数组的基本操作

数组索引与切片

python 复制代码
# 一维数组索引与切片
print(arr1[0])          # 输出第一个元素
print(arr1[1:4])        # 输出第二个到第四个元素

# 二维数组索引与切片
print(arr2[0, 1])       # 输出第一行第二列的元素
print(arr2[0, :])       # 输出第一行的所有元素
print(arr2[:, 1])       # 输出所有行的第二列元素

数组的形状改变

python 复制代码
# 使用ravel()将二维数组展平为一维数组
arr2_flattened = arr2.ravel()
print(arr2_flattened)

# 使用resize()改变数组的形状
arr2.resize((3, 1))
print(arr2)

数组的类型转换

python 复制代码
# 将数组转换为浮点型
arr2_float = arr2.astype(np.float64)
print(arr2_float)

4. 数学函数与统计方法

数组元素的数学运算

python 复制代码
# 元素级运算
arr3 = np.array([1, 2, 3])
arr4 = np.array([4, 5, 6])
print(arr3 + arr4)  # 对应元素相加
print(arr3 * arr4)  # 对应元素相乘

统计函数

python 复制代码
# 计算数组的基本统计量
print(np.mean(arr1))       # 平均值
print(np.median(arr1))     # 中位数
print(np.std(arr1))        # 标准差
print(np.var(arr1))        # 方差
print(np.max(arr1))        # 最大值
print(np.min(arr1))        # 最小值

线性代数运算

python 复制代码
# 创建两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 矩阵乘法
print(np.dot(A, B))

# 矩阵的逆
print(np.linalg.inv(A))

5. 广播机制

什么是广播

广播是numpy中用于在不同形状的数组之间执行算术运算的一种机制。

广播的规则与示例

python 复制代码
# 示例1:一维数组与标量运算
arr5 = np.array([1, 2, 3])
print(arr5 + 10)  # 每个元素都加上10

# 示例2:形状兼容的数组运算
arr6 = np.array([[1, 2], [3, 4]])
arr7 = np.array([5, 6])
print(arr6 + arr7)  # arr7会被广播到与arr6相同的形状

6. 文件操作

读取与保存数组到文件

python 复制代码
# 保存数组到文本文件
np.savetxt('array.txt', arr2, delimiter=',')

# 从文本文件读取数组
loaded_array = np.loadtxt('array.txt', delimiter=',')
print(loaded_array)

7. 随机数的生成

生成随机数的方法

python 复制代码
# 生成一个0到1之间的随机浮点数
print(np.random.rand())

# 生成一个指定形状的数组,数组元素为0到1之间的随机浮点数
print(np.random.rand(2, 3))

# 生成一个指定范围内的随机整数
print(np.random.randint(low=0, high=10, size=(2, 3)))

# 生成一个服从正态分布的随机数数组
print(np.random.randn(2, 3))

希望这份Numpy基础知识点总览和代码示例能帮助你更好地学习和分享Numpy的相关知识。如果有任何疑问或需要进一步的解释,请随时提问。

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,自学记录Numpy基础知识点总览。

相关推荐
Li_RuiQi10 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
Li_RuiQi15 小时前
DAgger与交互式模仿学习_ACT学习笔记
笔记·学习
He BianGu15 小时前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
AI视觉网奇15 小时前
turtle 入门教程笔记
笔记
跨知易知识产权16 小时前
美国专利确权是什么,和专利诉讼有什么不一样?
笔记
杨逢昌工厂6S管理16 小时前
126-杨逢昌6S三环体系:越做越乱的现场熵增机理与基准化治理——一线现场诊断笔记
经验分享·笔记·职场和发展·学习方法
悟道书生16 小时前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
陈哈哈111116 小时前
折腾了半天,总算把 Vim 9.2 装明白了
笔记
陈哈哈111116 小时前
折腾了半天,总算把 OpenGL 的开发环境给装明白了
笔记
深圳老胡17 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节