创建 Numpy 数组的不同方法
介绍
Numpy 库的核心是数组对象或 ndarray 对象(n 维数组)。您将使用 Numpy 数组执行逻辑、统计和傅里叶变换。作为使用 Numpy 的一部分,您要做的第一件事就是创建 Numpy 数组。本指南的主要目的是向您(数据专业人士)介绍可用于创建 Numpy 数组的不同工具。
有三种不同的方法来创建 Numpy 数组:
- 使用 Numpy 函数
- 从其他 Python 结构(例如列表)转换
- 使用特殊库函数
使用 Numpy 函数
Numpy 具有用于创建数组的内置函数。我们将在本指南中介绍其中一些函数。
创建一维数组
首先,让我们创建一个一维数组或一个秩为 1 的数组。arange是一个广泛使用的快速创建数组的函数。将值 20 传递给arange函数将创建一个值范围从 0 到 19 的数组。
import Numpy as np
array = np.arange(20)
array
输出:
array([0, 1, 2, 3, 4,
5, 6, 7, 8, 9,
10, 11, 12, 13, 14,
15, 16, 17, 18, 19])
要验证此数组的维数,请使用shape属性。
array.shape
输出:
(20,)
由于逗号后没有值,因此这是一个一维数组。要访问此数组中的值,请指定非负索引。与其他编程语言一样,索引从零开始。因此,要访问数组中的第四个元素,请使用索引 3。
array[3]
输出:
3
Numpy 数组是可变的,这意味着您可以在初始化数组后更改数组中元素的值。使用print函数查看数组的内容。
array[3] = 100
print(array)
输出:
0 1 2 100
4 5 6 7
8 9 10 11
12 13 14 15
16 17 18 19
与 Python 列表不同,Numpy 数组的内容是同质的。因此,如果您尝试将字符串值分配给数据类型为int的数组中的元素,则会收到错误。
array[3] ='Numpy'
输出:
ValueError: invalid literal for int() with base 10: 'Numpy'
创建二维数组
让我们讨论如何创建二维数组。如果仅使用arange函数,它将输出一维数组。要使其成为二维数组,请将其输出与reshape函数链接起来。
array = np.arange(20).reshape(4,5)
array
输出:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
首先,将创建 20 个整数,然后将数组转换为具有 4 行 5 列的二维数组。让我们检查一下这个数组的维数。
array.shape
输出:
(4, 5)
由于我们得到两个值,所以这是一个二维数组。要访问二维数组中的元素,您需要为行和列指定索引。
array[3][4]
输出:
19
创建三维数组及其他
要创建三维数组,请为重塑函数指定 3 个参数。
array = np.arange(27).reshape(3,3,3)
array
输出:
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
需要注意的是:数组中元素的数量 (27) 必须是其维度 (3*3*3) 的乘积。要检查它是否是三维数组,可以使用 shape 属性。
array.shape
输出:
(3, 3, 3)
另外,使用arange函数,您可以创建一个在定义的起始值和结束值之间具有特定序列的数组
np.arange(10, 35, 3)
输出:
array([10, 13, 16, 19, 22, 25, 28, 31, 34])
使用其他 Numpy 函数
除了arange函数之外,您还可以使用其他有用的函数(如零和一)来快速创建和填充数组。
使用zeros函数创建一个由零填充的数组。该函数的参数表示行数和列数(或其维度)。
np.zeros((2,4))
输出:
array([[0., 0., 0., 0.],
[0., 0., 0., 0.]])
使用those functions 创建一个由 1 填充的数组。
np.ones((3,4))
输出:
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
empty函数创建一个数组。其初始内容是随机的,取决于内存的状态。
np.empty((2,3))
输出:
array([[0.65670626, 0.52097334, 0.99831087],
[0.07280136, 0.4416958 , 0.06185705]])
full函数创建一个用给定值填充的 *n 数组。
np.full((2,2), 3)
输出:
array([[3, 3],
[3, 3]])
使用eye函数可以创建一个 * n 矩阵,其中对角线为 1,其他为 0。
np.eye(3,3)
输出:
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
函数linspace返回指定间隔内等距的数字。例如,以下函数返回间隔 0 到 10 之间的四个等距数字。
np.linspace(0, 10, num=4)
<font style="vertical-align: inheri
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~