【Python 零基础入门】Numpy 常用函数 通用函数 & 保存加载

这篇具有很好参考价值的文章主要介绍了【Python 零基础入门】Numpy 常用函数 通用函数 & 保存加载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

Numpy (Numerical Python) 是 Python 编程语言的一个扩展程序库, 支持大量的维度数组与矩阵运算, 并提供了大量的数学函数库. Numpy 利用了多线程数组来存储和处理大型数据集, 从而提供了一个高效的方式来进行数值计算, 特别是对于矩阵预算和线性代数.

【Python 零基础入门】Numpy 常用函数 通用函数 & 保存加载,2024 Python 最新基础教程,# Python 零基础入门,python,numpy,numpy 保存,numpy 矩阵运算,numpy 加载

通用函数

通用函数 (Ufuncs) 是 numpy 的核心部分. 通用函数提供了快速的元素级运算. 这些函数都是在 C 语言级别编写的, 因此能提供 Python 所不具备的高性能. 通用函数的另一个又是是能够直接读取数据, 避免了在 Python 循环中处理数据的开销.

【Python 零基础入门】Numpy 常用函数 通用函数 & 保存加载,2024 Python 最新基础教程,# Python 零基础入门,python,numpy,numpy 保存,numpy 矩阵运算,numpy 加载

np.sqrt 平方根

例子:

# 原始数组
array = np.array([1, 2, 3])

# 平方根
sqrt_array = np.sqrt(array)

# 调试输出
print("原始数组:", array)
print("平方根数组:", sqrt_array)

输出结果:

原始数组: [1 2 3]
平方根数组: [1.         1.41421356 1.73205081]

np.log 对数

np.log对数组中每个元素计算自然对数 l o g e ( X ) log_e(X) loge(X)

例子:

# 原始数组
array = np.array([1, 2, np.e])

# 对数
log_array = np.log(array)

# 调试输出
print("原始数组:", array)
print("对数数组:", log_array)

输出结果:

原始数组: [1.         2.         2.71828183]
对数数组: [0.         0.69314718 1.        ]

np.exp 指数

np.exp对数组中每个元素计算自然指数 e x e^x ex

例子:

# 原始数组
array = np.array([1, 2, 3])

# 平方根
exp_array = np.exp(array)

# 调试输出
print("原始数组:", array)
print("指数数组:", exp_array)

输出结果:

原始数组: [1 2 3]
指数数组: [ 2.71828183  7.3890561  20.08553692]

np.sin 正弦

例子:

# 原始数组
array = np.array([1, 2, 3])

# 正弦 sin
sin_array = np.sin(array)

# 调试输出
print("原始数组:", array)
print("正弦数组:", sin_array)

输出结果:

原始数组: [1 2 3]
正弦数组: [0.84147098 0.90929743 0.1411200

点积和叉积

np.dot 点积

点积 (Dot Product) 是线性代数中的基本运算. 点积是将两个向量的对应坐标相乘然后求和的运算.

对于两个变量 a 和 b, 他们的点积 a ⋅ b = a 1 b 1 + a 2 b 2 + . . . + a n b n a \cdot b = a_1b_1 + a_2b_2 + ... + a_nb_n ab=a1b1+a2b2+...+anbn

例子:

# 定义两个向量
a = np.array([1, 2])
b = np.array([3, 4])

# 计算点积
dot_result = np.dot(a, b)  # 1*3 + 2*4 = 11

# 调试输出
print("数组 a:", a)
print("数组 b:", b)
print("点积结果:", dot_result)

输出结果:

数组 a: [1 2]
数组 b: [3 4]
点积结果: 11

叉积

叉积 (Cross Product) 也是线性代数中的基本运算. 叉积是一个向量运算, 其结果是一个新的向量. 叉积的方向遵循右手定则, 大小等于两个向量构成的平行四边形的面积. 对于三味空间中的两个向量 a 和 b, 它们的叉积是 a × b = ( a 2 b 3 − a 3 b 2 , a 3 b 1 − a 1 b 3 , a 1 b 2 − a 2 b 1 ) a \times b = (a_2b_3 - a_3b_2, a_3b_1 - a_1b_3, a_1b_2 - a_2b_1) a×b=(a2b3a3b2,a3b1a1b3,a1b2a2b1)

例子:

# 定义两个三维向量
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 计算叉积
cross_result = np.cross(a, b)  # 2*6 - 3*5, 3*4 - 1*6, 1*5 - 2*4 = [-3, 6, 3]

# 调试输出
print("数组 a:", a)
print("数组 b:", b)
print("叉积结果:", cross_result)

输出结果:

数组 a: [1 2 3]
数组 b: [4 5 6]
叉积结果: [-3  6 -3]

矩阵乘法

矩阵乘法 (Matrix Multiplication) 是将 A, B 两个矩阵相乘得到一个新的矩阵 C. 其元素由 A 的行和 B 的列对应的元素相乘然后求和得到.

np.matmul

例子:

# 定义两个矩阵
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])

# 使用 np.matmul 进行矩阵乘法
matmul_result = np.matmul(matrix1, matrix2)
# 1*5 + 2*7, 1*6 + 2*8 = [19, 22]
# 3*5 + 4*7, 3*6 + 4*8 = [43, 50]

# 调试输出
print("矩阵1:", matrix1, sep="\n")
print("矩阵2:", matrix2, sep="\n")
print("使用 np.matmul:", matmul_result, sep="\n")

输出结果:

矩阵1:
[[1 2]
 [3 4]]
矩阵2:
[[5 6]
 [7 8]]
使用 np.matmul:
[[19 22]
 [43 50]]

@

例子:

# 定义两个矩阵
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])


# 使用 @ 运算符进行矩阵乘法
operator_result = matrix1 @ matrix2
# 1*5 + 2*7, 1*6 + 2*8 = [19, 22]
# 3*5 + 4*7, 3*6 + 4*8 = [43, 50]

# 调试输出
print("矩阵1:", matrix1, sep="\n")
print("矩阵2:", matrix2, sep="\n")
print("使用 @:", operator_result, sep="\n")

输出结果:

矩阵1:
[[1 2]
 [3 4]]
矩阵2:
[[5 6]
 [7 8]]
使用 @:
[[19 22]
 [43 50]]

保存 & 加载

在日常编程中, 我们经常需要将 Numpy 数组保存到文件中, 以便日后加载和食用. 下面我们来讲一下如恶化保存和加载 ndarray 对象.

【Python 零基础入门】Numpy 常用函数 通用函数 & 保存加载,2024 Python 最新基础教程,# Python 零基础入门,python,numpy,numpy 保存,numpy 矩阵运算,numpy 加载

np.save 保存单个数组

np.save将单个 ndarray 保存到一个二进制文件中, 文件扩展名通常为 “.npy”.

例子:

# 创建数组
array = np.array([1, 2, 3, 4])

# 保存数组
np.save("array.npy", array)

np.savez 保存多个数组

np.savez将多个 ndarray 保存到一个二进制文件中, 文件扩展名通常为 “.npy”.

例子:

# 创建数组
array1 = np.array([1, 2, 3, 4])
array2 = np.array([5, 6, 7, 8])

# 保存多个数组
np.savez("arrays.npz", array1=array1, array2=array2)

np.savez_compressed 保存

np.savez_compressednp.savez不同, 会对数组进行压缩.

例子:

# 创建数组
array1 = np.zeros(30000)
array2 = np.ones(30000)

# 保存多个数组
np.savez("arrays.npz", array1=array1, array2=array2)
np.savez_compressed("arrays_compressed.npz", array1=array1, array2=array2)

# 查看文件大小
arrays_size = os.path.getsize("arrays.npz")
arrays_compressed_size = os.path.getsize("arrays_compressed.npz")
print("无压缩大小: {} kb".format(arrays_size // 1024))
print("压缩大小: {} kb".format(arrays_compressed_size // 1024))

输出结果:

无压缩大小: 469 kb
压缩大小: 1 kb

np.load 加载

np.load可以帮助我们加载保存的文件, 加载 “.npy” 和 “.npz” 文件.

加载单个数组:

# 加载单个数组
array = np.load("array.npy")
print(array)

输出结果:

[1 2 3 4]

加载多个数组:

# 加载多个数组
loaded_array = np.load("arrays.npz")
array1 = loaded_array["array1"]
array2 = loaded_array["array2"]
print(array1)
print(array2)

输出结果:

[1 2 3 4]
[5 6 7 8]

npy vs npz

npy 文件:

  • 单个数组: .npy 格式用于保存单个 NumPy 数组
  • 二进制: .npy 是一个二进制文件, 数据以二进制形式存储在文件中. 这样可以更快的读写数据, 并更紧凑的存储, 不会像文件那样占用额外的空间.
  • 无压缩: .npy 文件不提供压缩功能, 保存的文件大小直接对应于数组内容的大小

npz 文件:文章来源地址https://www.toymoban.com/news/detail-754095.html

  • 多个数组: .npz 格式用于保存多个 NumPy 数组. 通过将数组以关键字参数的形式传递给np.saveznp.savez_compressed函数来实现
  • 压缩: .npz 文件可以选择压缩与否. 使用np.savez时, 数据不会被压缩, 而使用np.savez_compressed函数时, 所有数据都会被压缩. 通过压缩可以显著减少文件的大小, 特别是对于包含大量重复数据的数组

到了这里,关于【Python 零基础入门】Numpy 常用函数 通用函数 & 保存加载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python 零基础入门】常用内置函数 再探

    Python 是一种解释性, 高级和通用的变成语言. Python 由 Guido van Rossum 创建并 1991 年首次发布. Python 的设计强调代码的可读性, 其雨大允许我们使用相较于 C++ 或 Java 更少的代码表达概念. Python 使得变成变得更简单, 更快捷. 下面就跟着小白我来一起看一下 Python 常用的内置函数.

    2024年02月04日
    浏览(28)
  • 【0基础入门Python笔记】三、python 之函数以及常用内置函数

    函数是一种用于封装可重复使用代码块的工具,能够将一系列操作组织成一个逻辑单元。 函数定义 在Python中,函数通过def进行定义,后面跟着函数的名称、参数列表和冒号。函数的主体代码块缩进,并在需要时使用return返回值。 在上面的示例中,我们定义了一

    2024年02月12日
    浏览(55)
  • python实战应用讲解-【numpy数组篇】常用函数(八)(附python示例代码)

    目录 Python Numpy MaskedArray.cumprod()函数 Python Numpy MaskedArray.cumsum()函数 Python Numpy MaskedArray.default_fill_value()函数 Python Numpy MaskedArray.flatten()函数 Python Numpy MaskedArray.masked_equal()函数 numpy.MaskedArray.cumprod() 返回在给定轴上被屏蔽的数组元素的累积乘积。在计算过程中,被屏蔽的值在内部

    2024年02月02日
    浏览(39)
  • OpenCV从入门到精通(一) ——OpenCV简介、模块、常用函数、图像视频读取显示保存

    说明:关于OpenCV的教程和书籍已经很多了,所以,我不想重复别人已经做过的事情。如何系统全面的掌握OpenCV?我想这是每个学习OpenCV的人都想要做到的事情。说到底,OpenCV只是一个数字图像处理函数库,要全面掌握OpenCV的使用,只需要明白有哪些函数,每个函数怎么使用。

    2024年02月07日
    浏览(38)
  • 【Python 零基础入门】 Numpy

    在众多 Python 的数据处理库中, Numpy 是一个非常强大的存在. Numpy 为我们提供了高性能的多维数组, 以及这些数组对象上的各种操作. 但是, 作为一个刚入门 Python 的新手, 你可能会问: \\\"为什么我需要 Numpy, 而不是直接使用Python 的内置列表?\\\"在这篇文章的开篇, 我们就来探讨这个问

    2024年02月08日
    浏览(33)
  • Python Numpy入门基础(一)创建数组

    1- np.array() 参数众多,初学时只要关注基本用法。 元组、列表转换 内置函数 range() 数组副本copy,开辟一块新内存复制原数组 主要参数: dtype=     数组元素的数据类型,可选 copy=      对象是否需要复制,可选 order=     创建数组的样式,C为行方向,F为列方向,A为任意方

    2024年02月14日
    浏览(32)
  • Python Numpy入门基础(二)数组操作

    NumPy是Python中一个重要的数学运算库,它提供了了一组多维数组对象和一组用于操作这些数组的函数。以下是一些NumPy的主要特点: 多维数组对象:NumPy的核心是ndarray对象,它是一个多维数组对象,可以容纳任意数据类型。 矢量化操作:使用NumPy的函数,可以对整个数组进行

    2024年02月15日
    浏览(29)
  • 【Python入门知识】NumPy 中的随机数及ufuncs函数

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 什么是随机数? 随机数并不意味着每次都有不同的数字。随机意味着无法在逻辑上预测的事物。 伪随机和真随机 计算机在程序上工作,程序是权威的指令集。 因此,这意味着必须有某种算法来生成随机数。 如果存在生成随机数的程

    2024年02月03日
    浏览(83)
  • 【numpy基础】--通用计算

    numpy 提供了简单灵活的接口,用于优化数据数组的计算。 通用计算最大的优势在于通过向量化操作,将循环推送至 numpy 之下的编译层,从而取得更快的执行效率。 numpy 的通用计算让我们计算数组时就像计算单独一个变量一样, 不用写循环去遍历数组中的各个元素。 比如,

    2024年02月09日
    浏览(30)
  • 【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)

    目录 一、前言 二、实验环境 三、Python容器(Containers) 0、容器介绍 1、列表(List) 1. 初始化 a. 创建空列表 b. 使用现有元素初始化列表 c. 使用列表生成式 d. 复制列表 2. 索引和切片 a. 索引 b. 负数索引 c. 切片 3. 常用操作(更新、删除) a. 更新单个元素 b. 更新切片 c. 删除单

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包