Numpy的使用基础教程
使用 numpy
创建和操作数组
numpy
是 Python 中用于科学计算的核心库,提供了高效的多维数组对象 ndarray
以及各种操作数组的函数。以下是一些常见的 numpy
操作示例。
创建数组
使用 np.array
可以从 Python 列表创建 ndarray
数组。
import numpy as np
a = np.array([1, 2, 3])
print(a) # 输出: array([1, 2, 3])
print(a.dtype) # 输出: dtype('int64')
创建全零、全一或空数组
np.zeros
、np.ones
和 np.empty
可以创建指定形状的全零、全一或未初始化的数组。
zeros_array = np.zeros((3, 4))
print(zeros_array)
ones_array = np.ones((3, 4))
print(ones_array)
empty_array = np.empty((3, 4))
print(empty_array)
使用 np.arange
创建数组
np.arange
类似于 Python 的 range
函数,但返回的是 ndarray
。
arange_array = np.arange(10, 30, 5)
print(arange_array) # 输出: array([10, 15, 20, 25])
数组的形状操作
使用 reshape
可以改变数组的形状。
a = np.arange(15).reshape(3, 5)
print(a)
print(a.shape) # 输出: (3, 5)
数组的属性和方法
ndarray
对象有许多属性和方法,如 shape
、ndim
、dtype
、itemsize
和 size
。
print(a.ndim) # 输出: 2
print(a.dtype) # 输出: dtype('int64')
print(a.itemsize) # 输出: 8
print(a.size) # 输出: 15
创建随机数组
np.random
模块提供了生成随机数组的函数。
random_array = np.random.rand(3, 4)
print(random_array)
random_int_array = np.random.randint(-1, 4, size=(3, 4))
print(random_int_array)
数组的数学运算
numpy
提供了丰富的数学函数,如 np.ceil
、np.floor
、np.rint
、np.abs
等。
arr = np.random.randn(2, 3)
print(np.ceil(arr))
print(np.floor(arr))
print(np.rint(arr))
print(np.abs(arr))
数组的统计函数
numpy
提供了多种统计函数,如 np.sum
、np.mean
、np.std
、np.var
等。
arr = np.arange(12).reshape(3, 4)
print(np.sum(arr)) # 输出: 66
print(np.mean(arr, axis=1)) # 输出: [1.5, 5.5, 9.5]
print(np.std(arr)) # 输出: 3.452052529534663
print(np.var(arr)) # 输出: 11.916666666666666
数组的比较和排序
numpy
提供了 np.any
、np.all
、np.unique
和 np.sort
等函数用于数组的比较和排序。
arr = np.random.randn(2, 3)
print(np.any(arr > 1)) # 输出: False
print(np.all(arr > -5)) # 输出: True
arr = np.array([1, 5, 3, 6, 7, 8])
print(np.sort(arr)) # 输出: array([1, 3, 5, 6, 7, 8])
矩阵乘法
使用 np.dot
或 @
运算符可以进行矩阵乘法。
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.random.rand(3, 2)
print(np.dot(a, b))
数据类型转换
使用 astype
可以转换数组的数据类型。
z1 = np.zeros((3, 4), dtype=float)
print(z1.astype(int))
生成等比和等差数列
np.logspace
和 np.linspace
可以生成等比和等差数列。
log_array = np.logspace(1, 10, 10)
print(log_array)
lin_array = np.linspace(2, 10, 5, dtype=int)
print(lin_array) # 输出: array([ 2, 4, 6, 8, 10])