Numpy 数组

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)
Python

输出结果:

[1 2 3]
Python

同样的方式我们可以创建二维数组:

b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
Python

输出结果:

[[1 2 3]
 [4 5 6]]
Python

2. 使用arange函数创建等差数列数组

下面是使用NumPy的arange函数创建等差数列数组的例子。arange函数的第一个参数是起始值,第二个参数是终止值,第三个参数是步长。例如,以下代码生成1到10之间的等差数列:

c = np.arange(1, 11, 1)
print(c)
Python

输出结果:

[ 1  2  3  4  5  6  7  8  9 10]
Python

3. 使用linspace函数创建等分数列数组

NumPy的linspace函数可以被用来在指定的范围内创建一个等分数列数组。例如,以下是创建一个1到10之间的等分数列数组的例子:

d = np.linspace(1, 10, 10)
print(d)
Python

输出结果:

[ 1.          2.11111111  3.22222222  4.33333333  5.44444444  6.55555556
  7.66666667  8.77777778  9.88888889 10.        ]
Python

第三个参数指定了需要生成的数组元素数量。

NumPy数组的属性

当然,我们运行创建数组的代码后,我们想知道它的一些属性,例如大小、形状、数据类型等。我们可以使用以下属性来查看这些属性:

1. ndim属性

可以使用ndim属性检查数组的维度。例如,以下代码检查了数组a的维度:

print(a.ndim)
Python

输出结果:

1
Python

我们创建的数组a是一个一维数组。

2. shape属性

shape是一个元组,它只是我们创建数组时指定的形状。因此,shape属性告诉我们数组的大小。例如,以下代码检查了数组b的形状:

print(b.shape)
Python

输出结果:

(2, 3)
Python

我们创建的数组b是一个2行、3列的数组。

3. size属性

size属性给出了数组的元素总数。例如,以下代码检查了数组c的元素总数:

print(c.size)
Python

输出结果:

10
Python

我们创建的数组c有10个元素。

4. dtype属性

dtype属性描述了数组的元素类型。例如,以下代码检查了数组ad的元素类型:

print(a.dtype)
print(d.dtype)
Python

输出结果:

int32
float64
Python

我们创建的数组a的元素类型是32位整型,而数组d的元素类型是64位浮点型。

数组的索引和切片

NumPy数组的索引和切片与Python列表非常相似。例如,以下代码演示了如何使用索引来访问数组的元素:

a = np.array([1, 2, 3, 4])

print(a[0])   # 输出第一个元素
print(a[-1])  # 输出最后一个元素
Python

输出结果:

1
4
Python

接下来,我们演示如何使用切片来访问数组中的元素区间,如下所示:

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列元素
Python

输出结果:

[4 5 6]
[2 5 8]
[[2 3]
 [5 6]]
Python

数组的运算

这里要注意的是,算术操作不仅能够应用于NumPy数组和标量,也可以应用于两个数组。在这种情况下,它们的形状必须相同。下面,我们演示了如何将两个数组相加:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

c = a + b  # 对应元素相加

print(c)
Python

输出结果:

[5 7 9]
Python

还可以使用各种函数对数组进行处理。例如,以下代码演示如何计算数组的平均值、最大值和最小值:

a = np.array([1, 2, 3, 4, 5])

print(np.mean(a))  # 计算平均值
print(np.max(a))   # 计算最大值
print(np.min(a))   # 计算最小值
Python

输出结果:

3.0
5
1
Python

总结

总之,NumPy的array对象提供了一种非常实用的方式来处理和存储数据。我们可以轻松地创建、索引、切片和运算数组,以及对数组进行各种处理。在数据科学中,NumPy的array这个工具是一个很强大的工具,值得学习和掌握。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册