NumPy是Python科学计算的核心库,提供了更强大和高效的功能。本文将对NumPy的核心函数进行分类整理,并详细解释每个函数的原型、使用方法和示例,帮助读者快速掌握其用法。
一、数组创建与初始化
1. np.array()
• 原型:numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0) • 功能:将Python列表、元组等序列转换为NumPy数组。 • 示例:
import numpy as np data = [1, 2, 3, 4] arr = np.array(data) print(arr) # 输出: [1 2 3 4]
2. np.zeros()
• 原型:numpy.zeros(shape, dtype=float, order='C') • 功能:生成指定形状的全零数组。 • 示例:
zeros_arr = np.zeros((2, 3)) print(zeros_arr) # 输出: # [[0. 0. 0.] # [0. 0. 0.]]
3. np.ones()
• 原型:numpy.ones(shape, dtype=None, order='C') • 功能:生成指定形状的全一数组。 • 示例:
ones_arr = np.ones((2, 2)) print(ones_arr) # 输出: # [[1. 1.] # [1. 1.]]
4. np.linspace()
• 原型:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) • 功能:在指定范围内生成等间隔的数值序列。 • 示例:
lin_arr = np.linspace(0, 10, 5) print(lin_arr) # 输出: [ 0. 2.5 5. 7.5 10. ]
二、数组操作与变形
1. np.reshape()
• 原型:numpy.reshape(a, newshape, order='C') • 功能:在不改变数据的情况下,重新调整数组的形状。 • 示例:
arr = np.arange(6) reshaped_arr = arr.reshape(2, 3) print(reshaped_arr) # 输出: # [[0 1 2] # [3 4 5]]
2. np.concatenate()
• 原型:numpy.concatenate((a1, a2, ...), axis=0, out=None) • 功能:沿指定轴将多个数组拼接在一起。 • 示例:
a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6]]) concat_arr = np.concatenate((a, b), axis=0) print(concat_arr) # 输出: # [[1 2] # [3 4] # [5 6]]
3. np.split()
• 原型:numpy.split(ary, indices_or_sections, axis=0) • 功能:将数组沿指定轴分割为多个子数组。 • 示例:
arr = np.arange(9) split_arr = np.split(arr, 3) print(split_arr) # 输出: [array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]
三、数学与统计计算
1. np.sum()
• 原型:numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False) • 功能:计算数组沿指定轴的和。 • 示例:
arr = np.array([[1, 2], [3, 4]]) sum_result = np.sum(arr, axis=1) print(sum_result) # 输出: [3 7]
2. np.mean()
• 原型:numpy.mean(a, axis=None, dtype=None, out=None, keepdims=False) • 功能:计算数组沿指定轴的均值。 • 示例:
mean_result = np.mean(arr, axis=0) print(mean_result) # 输出: [2. 3.]
3. np.std()
• 原型:numpy.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False) • 功能:计算数组沿指定轴的标准差。 • 示例:
std_result = np.std(arr) print(std_result) # 输出: 1.118033988749895
四、线性代数运算
1. np.dot()
• 原型:numpy.dot(a, b, out=None) • 功能:计算两个数组的点积。 • 示例:
a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) dot_result = np.dot(a, b) print(dot_result) # 输出: # [[19 22] # [43 50]]
2. np.linalg.inv()
• 原型:numpy.linalg.inv(a) • 功能:计算矩阵的逆矩阵。 • 示例:
inv_result = np.linalg.inv(a) print(inv_result) # 输出: # [[-2. 1. ] # [ 1.5 -0.5]]
五、随机数生成
1. np.random.rand()
• 原型:numpy.random.rand(d0, d1, ..., dn) • 功能:生成指定形状的[0, 1)区间均匀分布随机数。 • 示例:
rand_arr = np.random.rand(2, 3) print(rand_arr) # 输出: (示例结果) # [[0.123 0.456 0.789] # [0.234 0.567 0.890]]
2. np.random.normal()
• 原型:numpy.random.normal(loc=0.0, scale=1.0, size=None) • 功能:生成指定均值和标准差的正态分布随机数。 • 示例:
normal_arr = np.random.normal(0, 1, 5) print(normal_arr) # 输出: (示例结果) [-0.123 0.456 -0.789 1.234 -0.567]
六、其他实用函数
1. np.where()
• 原型:numpy.where(condition, [x, y]) • 功能:根据条件选择元素。 • 示例:
arr = np.array([1, 2, 3, 4]) result = np.where(arr > 2, arr, 0) print(result) # 输出: [0 0 3 4]
2. np.unique()
• 原型:numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None) • 功能:返回数组中的唯一元素。 • 示例:
arr = np.array([1, 2, 2, 3, 3, 3]) unique_arr = np.unique(arr) print(unique_arr) # 输出: [1 2 3]
总结
NumPy提供了丰富的函数库,涵盖了数组创建、数学运算、线性代数、随机数生成等多个领域。通过本文的分类整理和详细示例,读者可以快速掌握这些核心函数的用法,并将其应用到实际项目中。NumPy是数据科学和机器学习的基础工具,熟练掌握它将有助于提升你的技术能力!
领取专属 10元无门槛券
私享最新 技术干货