Python np.array的使用详解
1. 引言
在Python中,NumPy(Numerical Python)是一个用于科学计算的强大库。它提供了高性能的多维数组对象(ndarray)以及用于处理这些数组的各种函数。本文将详细介绍NumPy的核心对象之一——np.array
的使用方法和相关特性。
2. 创建np.array
在使用NumPy的np.array
之前,我们首先需要导入NumPy库。通常情况下,大家都使用习惯了将NumPy库导入并重命名为np
:
2.1 从列表或元组创建np.array
使用NumPy的array
函数,可以从一个列表或元组创建一个np.array
对象。例如,我们可以从一个一维的Python列表创建一个一维的np.array
:
这段代码将输出:
[1 2 3 4 5]
类似地,我们可以从一个多维的Python列表创建一个多维的np.array
:
这段代码将输出:
[[1 2]
[3 4]
[5 6]]
使用np.array
函数创建的数组可以是任意维度的,只需要在array
函数中提供对应的数据即可。
2.2 使用NumPy提供的函数创建特殊的np.array
除了通过列表或元组创建np.array
,NumPy还提供了一些函数用于创建特殊的数组。
2.2.1 使用np.zeros
创建全零数组
np.zeros
函数可以创建一个指定形状的全零数组。我们可以指定数组的形状(维度)作为参数。例如,创建一个形状为(2, 3)的全零数组:
这段代码将输出:
[[0. 0. 0.]
[0. 0. 0.]]
2.2.2 使用np.ones
创建全一数组
np.ones
函数类似于np.zeros
函数,可以创建一个指定形状的全一数组。
这段代码将输出:
[[1. 1. 1.]
[1. 1. 1.]]
2.2.3 使用np.arange
创建连续整数数组
np.arange
函数可以创建一个连续的整数数组。我们可以指定数组的起始值、结束值和步长。例如,创建一个从0到9的连续整数数组:
这段代码将输出:
[0 1 2 3 4 5 6 7 8 9]
2.2.4 使用np.linspace
创建等差数列数组
np.linspace
函数会在指定的起始值和结束值之间创建等差数列。我们可以指定数列的起始值、结束值以及包含的元素个数。
这段代码将输出:
[0. 0.25 0.5 0.75 1. ]
2.3 使用随机数创建np.array
除了上述方法,NumPy还提供了多种方法用于创建由随机数填充的np.array
。
2.3.1 使用np.random.rand
创建0到1之间的随机数数组
np.random.rand
函数可以创建指定维度的0到1之间的随机数数组。我们可以指定数组的形状(维度)。
这段代码将输出:
[[0.4205492 0.35339967 0.15871663]
[0.2809823 0.29531438 0.68120656]]
2.3.2 使用np.random.randn
创建服从标准正态分布的随机数数组
np.random.randn
函数可以创建符合标准正态分布(均值为0,方差为1)的指定维度的随机数数组。
这段代码将输出:
[[ 1.01111932 -0.23198528 0.09575871]
[ 0.72938318 0.60414215 -0.29782545]]
3. np.array
的属性与方法
3.1 shape
属性
使用shape
属性可以获取np.array
的形状(维度)。
这段代码将输出:
(2, 4)
3.2 ndim
属性
使用ndim
属性可以获取np.array
的维度。
这段代码将输出:
2
3.3 size
属性
使用size
属性可以获取np.array
中元素的总个数。
这段代码将输出:
8
3.4 dtype
属性
使用dtype
属性可以获取np.array
中元素的数据类型。
这段代码将输出:
int64
3.5 reshape
方法
使用reshape
方法可以改变np.array
的形状(维度)。
这段代码将输出:
[[0 1 2 3 4]
[5 6 7 8 9]]
3.6 flatten
方法
使用flatten
方法可以将np.array
展开为一维数组。
这段代码将输出:
[1 2 3 4 5 6]