前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
什么是 NumPy?
NumPy
是用于处理数组的 python 库。
它还拥有在线性代数、傅立叶变换和矩阵领域中工作的函数。
NumPy 由 Travis Oliphant 于 2005 年创建。它是一个开源项目,你可以自由使用它。
NumPy 指的是数值 Python(Numerical Python)。
为何使用 NumPy?
在 Python 中,我们有满足数组功能的列表,但是处理起来很慢。
NumPy 旨在提供一个比传统 Python 列表快 50 倍的数组对象。
NumPy 中的数组对象称为 ndarray,它提供了许多支持函数,使得利用 ndarray 非常容易。
数组在数据科学中非常常用,因为速度和资源非常重要。
数据科学:计算机科学的一个分支,研究如何存储、使用和分析数据以从中获取信息。
为什么 NumPy 比列表快?
与列表不同,NumPy 数组存储在内存中的一个连续位置,因此进程可以非常有效地访问和操纵它们。
这种行为在计算机科学中称为引用的局部性。
这是 NumPy 比列表更快的主要原因。它还经过了优化,可与最新的 CPU 体系结构一同使用。
NumPy 用哪种语言编写?
NumPy 是一个 Python 库,部分用 Python 编写,但是大多数需要快速计算的部分都是用 C 或 C ++ 编写的。
NumPy 代码库在哪里?
NumPy 的源代码位于这个 github 资料库中:https://github.com/numpy/numpy
github:使许多人可以在同一代码库上工作。
安装 NumPy
如果你已经在系统上安装了 Python 和 PIP,那么安装 NumPy 非常容易。
请使用这条命令安装它:
C:\Users\Your Name>pip install numpy
如果此命令失败,请使用已经安装了 NumPy 的 python 发行版,例如 Anaconda、Spyder 等。
导入 NumPy
安装 NumPy 后,通过添加 import 关键字将其导入您的应用程序:
import numpy
现在,Numpy 已导入并可以使用。
实例
import numpy
arr = numpy.array([1, 2, 3, 4, 5])
print(arr)
运行实例
NumPy as np
NumPy 通常以 np 别名导入。
别名:在 Python 中,别名是用于引用同一事物的替代名称。
请在导入时使用 as 关键字创建别名:
import numpy as np
现在,可以将 NumPy 包称为 np 而不是 numpy。
实例
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
运行实例
检查 NumPy 版本
版本字符串存储在 version 属性中
实例
import numpy as np
print(np.__version__)
运行实例
创建 NumPy ndarray 对象
NumPy 用于处理数组,NumPy 中的数组对象称为 ndarray。
我们可以使用 array() 函数创建一个 NumPy ndarray 对象。
实例
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))
运行实例
type(): 这个内置的 Python 函数告诉我们传递给它的对象的类型。像上面的代码一样,它表明 arr 是 numpy.ndarray 类型。
要创建 ndarray,我们可以将列表、元组或任何类似数组的对象传递给 array() 方法,然后它将被转换为 ndarray:
实例
使用元组创建 NumPy 数组:
import numpy as np
arr = np.array((1, 2, 3, 4, 5))
print(arr)
运行实例
数组中的维
数组中的维是数组深度(嵌套数组)的一个级别
嵌套数组:
指的是将数组作为元素的数组。
0-D 数组
0-D 数组,或标量(Scalars),是数组中的元素。数组中的每个值都是一个 0-D 数组。
实例
用值 61 创建 0-D 数组:
import numpy as np
arr = np.array(61)
print(arr)
运行实例
1-D 数组
其元素为 0-D 数组的数组,称为一维或 1-D 数组。
这是最常见和基础的数组
实例
创建包含值 1、2、3、4、5、6 的 1-D 数组:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
print(arr)
运行实例
2-D 数组
其元素为 1-D 数组的数组,称为 2-D 数组。
它们通常用于表示矩阵或二阶张量。
NumPy 有一个专门用于矩阵运算的完整子模块 numpy.mat。
实例
创建包含值 1、2、3 和 4、5、6 两个数组的 2-D 数组:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
运行实例
3-D 数组
其元素为 2-D 数组的数组,称为 3-D 数组。
实例
用两个 2-D 数组创建一个 3-D 数组,这两个数组均包含值 1、2、3 和 4、5、6 的两个数组:
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
print(arr)
运行实例
检查维数?
NumPy 数组提供了 ndim 属性,该属性返回一个整数,该整数会告诉我们数组有多少维。
实例
检查数组有多少维:
import numpy as np
a = np.array(42)
b = np.array([1, 2, 3, 4, 5])
c = np.array([[1, 2, 3], [4, 5, 6]])
d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
print(a.ndim)
print(b.ndim)
print(c.ndim)
print(d.ndim)
运行实例
更高维的数组
数组可以拥有任意数量的维。
在创建数组时,可以使用 ndmin 参数定义维数。
实例
创建一个有 5 个维度的数组,并验证它拥有 5 个维度:
import numpy as np
arr = np.array([1, 2, 3, 4], ndmin=5)
print(arr)
print('number of dimensions :', arr.ndim)
运行实例
在此数组中,最里面的维度(第 5 个 dim)有 4 个元素,第 4 个 dim 有 1 个元素作为向量,第 3 个 dim 具有 1 个元素是与向量的矩阵,第 2 个 dim 有 1 个元素是 3D 数组,而第 1 个 dim 有 1 个元素,该元素是 4D 数组。
访问数组元素
数组索引等同于访问数组元素。
可以通过引用其索引号来访问数组元素。
NumPy 数组中的索引以 0 开头,这意味着第一个元素的索引为 0,第二个元素的索引为 1,以此类推。
实例
从以下数组中获取第一个元素:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[0])
运行实例
实例
从以下数组中获取第二个元素:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[1])
运行实例
实例
从以下数组中获取第三和第四个元素并将其相加:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[2] + arr[3])
运行实例
访问 2-D 数组
要访问二维数组中的元素,我们可以使用逗号分隔的整数表示元素的维数和索引。
实例
访问第一维中的第二个元素:
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('2nd element on 1st dim: ', arr[0, 1])
运行实例
实例
访问第二维中的第五个元素:
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('5th element on 2nd dim: ', arr[1, 4])
运行实例
访问 3-D 数组
要访问 3-D 数组中的元素,我们可以使用逗号分隔的整数来表示元素的维数和索引。
实例
访问第一个数组的第二个数组的第三个元素:
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(arr[0, 1, 2])
运行实例
例子解释
arr[0, 1, 2] 打印值 6。
工作原理:
第一个数字代表第一个维度,其中包含两个数组:
[[1, 2, 3], [4, 5, 6]]
然后:
[[7, 8, 9], [10, 11, 12]]
由于我们选择了 0,所以剩下第一个数组:
[[1, 2, 3], [4, 5, 6]]
第二个数字代表第二维,它也包含两个数组:
[1, 2, 3]
然后:
[4, 5, 6]
因为我们选择了 1,所以剩下第二个数组:
[4, 5, 6]
第三个数字代表第三维,其中包含三个值:
4
5
6
由于我们选择了 2,因此最终得到第三个值:
6
负索引
使用负索引从尾开始访问数组
实例
打印第二个维中的的最后一个元素
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('Last element from 2nd dim: ', arr[1, -1])
运行实例
尾语 💝
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝