【自学笔记】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基础知识点总览。

相关推荐
ladymorgana43 分钟前
【日常笔记】wps如何将值转换成东西南北等风向汉字
笔记·wps
Lester_11011 小时前
嵌入式学习笔记 - STM32 U(S)ART 模块HAL 库函数总结
笔记·学习
Dovis(誓平步青云)1 小时前
探索C++面向对象:从抽象到实体的元规则(上篇)
开发语言·c++·经验分享·笔记·学习方法
小葡萄20253 小时前
黑马程序员C++2024新版笔记 第三章 数组
笔记·算法·c++20
wishfly5 小时前
vscode - 笔记
ide·笔记·vscode
黄鹂绿柳6 小时前
Vue+Vite学习笔记
vue.js·笔记·学习
FakeOccupational10 小时前
计算机科技笔记: 容错计算机设计05 n模冗余系统 TMR 三模冗余系统
笔记·科技
海棠蚀omo12 小时前
C++笔记-红黑树
开发语言·c++·笔记
龙湾开发12 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 12.曲面细分
c++·笔记·学习·3d·图形渲染
霸王蟹13 小时前
React中巧妙使用异步组件Suspense优化页面性能。
前端·笔记·学习·react.js·前端框架