NumPy是Python中用于科学计算的基础库之一。它提供了高效的多维数组对象(ndarray)、用于数组计算的函数以及用于读写磁盘上基于数组的数据集的工具。本教程将介绍NumPy的基本概念和用法。
在使用NumPy之前,需要先安装它。可以使用pip命令进行安装:
pip install numpy
NumPy的核心是ndarray对象,它是一个多维数组。ndarray对象可以是一维数组、二维数组或更高维数组。以下是创建ndarray对象的几种方法:
可以使用numpy.array()
函数从Python列表创建ndarray对象。例如,以下代码创建了一个一维数组:
import numpy as np
a = np.array([1, 2, 3])
print(a)
输出:
[1 2 3]
可以使用ndarray.shape
属性获取数组的形状:
print(a.shape)
输出:
(3,)
这表示数组有3个元素。
可以使用ndarray.dtype
属性获取数组的数据类型:
print(a.dtype)
输出:
int64
这表示数组的元素类型为64位整数。
可以使用ndarray.ndim
属性获取数组的维度:
print(a.ndim)
输出:
1
这表示数组是一维的。
可以使用ndarray.size
属性获取数组的元素个数:
print(a.size)
输出:
3
这表示数组有3个元素。
可以使用ndarray.itemsize
属性获取数组的每个元素的字节数:
print(a.itemsize)
输出:
8
这表示数组的每个元素占用8个字节。
可以使用ndarray.data
属性获取数组的内存地址:
print(a.data)
输出:
可以使用numpy.array()
函数从Python元组创建ndarray对象。例如,以下代码创建了一个二维数组:
import numpy as np
a = np.array([(1, 2, 3), (4, 5, 6)])
print(a)
输出:
[[1 2 3]
[4 5 6]]
可以使用ndarray.shape
属性获取数组的形状:
print(a.shape)
输出:
(2, 3)
这表示数组有2行3列。
可以使用ndarray.dtype
属性获取数组的数据类型:
print(a.dtype)
输出:
int64
这表示数组的元素类型为64位整数。
可以使用ndarray.ndim
属性获取数组的维度:
print(a.ndim)
输出:
2
这表示数组是二维的。
可以使用ndarray.size
属性获取数组的元素个数:
print(a.size)
输出:
6
这表示数组有6个元素。
可以使用ndarray.itemsize
属性获取数组的每个元素的字节数:
print(a.itemsize)
输出:
8
这表示数组的每个元素占用8个字节。
可以使用ndarray.data
属性获取数组的内存地址:
print(a.data)
输出:
NumPy提供了许多函数用于创建ndarray对象。以下是一些常用的函数:
numpy.zeros(shape, dtype=float, order='C')
:创建一个指定形状和数据类型的全0数组。numpy.ones(shape, dtype=float, order='C')
:创建一个指定形状和数据类型的全1数组。numpy.empty(shape, dtype=float, order='C')
:创建一个指定形状和数据类型的空数组,其元素值未初始化。numpy.arange([start,] stop[, step,], dtype=None)
:创建一个指定范围和步长的一维数组。numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
:创建一个指定范围和元素个数的一维数组。例如,以下代码创建了一个全0数组:
import numpy as np
a = np.zeros((2, 3))
print(a)
输出:
[[0. 0. 0.]
[0. 0. 0.]]
可以使用numpy.ones()
和numpy.empty()
函数创建全1数组和空数组。
例如,以下代码创建了一个一维数组:
import numpy as np
a = np.arange(10)
print(a)
输出:
[0 1 2 3 4 5 6 7 8 9]
可以使用numpy.linspace()
函数创建等间隔的一维数组。
例如,以下代码创建了一个一维数组:
import numpy as np
a = np.linspace(0, 1, 5)
print(a)
输出:
[0. 0.25 0.5 0.75 1. ]
NumPy数组支持各种数学运算,例如加、减、乘、除等。以下是一些常用的运算:
可以使用+
运算符进行数组加法。例如,以下代码将两个数组相加:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b
print(c)
输出:
[5 7 9]
可以使用-
运算符进行数组减法。例如,以下代码将两个数组相减:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a - b
print(c)
输出:
[-3 -3 -3]
可以使用*
运算符进行数组乘法。例如,以下代码将两个数组相乘:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a * b
print(c)
输出:
[ 4 10 18]
可以使用/
运算符进行数组除法。例如,以下代码将两个数组相除:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a / b
print(c)
输出:
[0.25 0.4 0.5 ]
可以使用**
运算符进行数组求幂。例如,以下代码将一个数组的每个元素求平方:
import numpy as np
a = np.array([1, 2, 3])
b = a ** 2
print(b)
输出:
[1 4 9]