Numpy 数组
在Python中使用NumPy的一个主要优势是,NumPy的array对象可以比Python列表更好地处理数据。Python列表是一个通用的容器,可以包含任何类型的对象。Python列表没有任何特殊的功能,只是一个集合,并可以使用Python语言中的方式进行操作。
但是,NumPy的array对象是一个真正的数组,它不容易被拓展,这正是它的优势之一。因为NumPy的数组是固定的,所以比Python列表更高效地存储和处理数据。NumPy数组的所有元素必须是相同类型的数据。
阅读更多:Numpy 教程
创建NumPy数组
我们可以使用多种方式来创建NumPy数组:
1. 从Python列表中创建
可以使用NumPy的array函数来创建一个NumPy数组。可以通过传递Python列表或元组来创建一个数组。例如,我们可以使用以下代码创建一个NumPy数组:
import numpy as np
a = np.array([1, 2, 3])
print(a)
输出结果:
[1 2 3]
同样的方式我们可以创建二维数组:
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
输出结果:
[[1 2 3]
[4 5 6]]
2. 使用arange函数创建等差数列数组
下面是使用NumPy的arange函数创建等差数列数组的例子。arange函数的第一个参数是起始值,第二个参数是终止值,第三个参数是步长。例如,以下代码生成1到10之间的等差数列:
c = np.arange(1, 11, 1)
print(c)
输出结果:
[ 1 2 3 4 5 6 7 8 9 10]
3. 使用linspace函数创建等分数列数组
NumPy的linspace函数可以被用来在指定的范围内创建一个等分数列数组。例如,以下是创建一个1到10之间的等分数列数组的例子:
d = np.linspace(1, 10, 10)
print(d)
输出结果:
[ 1. 2.11111111 3.22222222 4.33333333 5.44444444 6.55555556
7.66666667 8.77777778 9.88888889 10. ]
第三个参数指定了需要生成的数组元素数量。
NumPy数组的属性
当然,我们运行创建数组的代码后,我们想知道它的一些属性,例如大小、形状、数据类型等。我们可以使用以下属性来查看这些属性:
1. ndim属性
可以使用ndim属性检查数组的维度。例如,以下代码检查了数组a的维度:
print(a.ndim)
输出结果:
1
我们创建的数组a是一个一维数组。
2. shape属性
shape是一个元组,它只是我们创建数组时指定的形状。因此,shape属性告诉我们数组的大小。例如,以下代码检查了数组b的形状:
print(b.shape)
输出结果:
(2, 3)
我们创建的数组b是一个2行、3列的数组。
3. size属性
size属性给出了数组的元素总数。例如,以下代码检查了数组c的元素总数:
print(c.size)
输出结果:
10
我们创建的数组c有10个元素。
4. dtype属性
dtype属性描述了数组的元素类型。例如,以下代码检查了数组a和d的元素类型:
print(a.dtype)
print(d.dtype)
输出结果:
int32
float64
我们创建的数组a的元素类型是32位整型,而数组d的元素类型是64位浮点型。
数组的索引和切片
NumPy数组的索引和切片与Python列表非常相似。例如,以下代码演示了如何使用索引来访问数组的元素:
a = np.array([1, 2, 3, 4])
print(a[0]) # 输出第一个元素
print(a[-1]) # 输出最后一个元素
输出结果:
1
4
接下来,我们演示如何使用切片来访问数组中的元素区间,如下所示:
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(b[1]) # 输出第二个元素(即第二行)
print(b[:, 1]) # 输出第二列元素
print(b[0:2, 1:3]) # 输出第1到2行,第2到3列元素
输出结果:
[4 5 6]
[2 5 8]
[[2 3]
[5 6]]
数组的运算
这里要注意的是,算术操作不仅能够应用于NumPy数组和标量,也可以应用于两个数组。在这种情况下,它们的形状必须相同。下面,我们演示了如何将两个数组相加:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b # 对应元素相加
print(c)
输出结果:
[5 7 9]
还可以使用各种函数对数组进行处理。例如,以下代码演示如何计算数组的平均值、最大值和最小值:
a = np.array([1, 2, 3, 4, 5])
print(np.mean(a)) # 计算平均值
print(np.max(a)) # 计算最大值
print(np.min(a)) # 计算最小值
输出结果:
3.0
5
1
总结
总之,NumPy的array对象提供了一种非常实用的方式来处理和存储数据。我们可以轻松地创建、索引、切片和运算数组,以及对数组进行各种处理。在数据科学中,NumPy的array这个工具是一个很强大的工具,值得学习和掌握。
极客教程