关于人工智能:这8个NumPy函数可以解决90的常见问题

38次阅读

共计 4216 个字符,预计需要花费 11 分钟才能阅读完成。

NumPy 是一个用于科学计算和数据分析的 Python 库,也是机器学习的支柱。能够说 NumPy 奠定了 Python 在机器学习中的位置。NumPy 提供了一个弱小的多维数组对象,以及宽泛的数学函数,能够对大型数据集进行无效的操作。这里的“大”是指数百万行。

Numpy 疾速而高效的起因是底层的 C 代码,这比应用 Python 进行数组的操作要快上几百倍,并且随着数据量级的回升而回升。

本文中整顿了一些能够解决常见问题的次要的 NumPy 函数。

1、创立数组

numpy.array: 创立新的 NumPy 数组

  # Create an array using np.array()
 arr = np.array([1, 2, 3, 4, 5])
 
 print(arr)
 Ouput: [1 2 3 4 5]

numpy.zeros: 创立一个以零填充的数组。

 # Create a 2-dimensional array of zeros
 arr = np.zeros((3, 4))
 
 [[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]

相似的还有 numpy.ones: 创立一个都是 1 的数组 / numpy.empty: 在不初始化数组元素的状况下创立数组。

应用 numpy.random: 生成随机数组的函数。

 # Generate a random integer between 0 and 9
 rand_int = np.random.randint(10)
 print(rand_int)

numpy.linspace: 在指定范畴内生成平均距离的数字。

 # Generate an array of 5 values from 0 to 10 (inclusive)
 arr = np.linspace(0, 10, 5)
 
 # Print the array
 print(arr)
 [0.   2.5  5.   7.5 10.]

numpy.range: 用距离的值创立数组。

 # Generate an array from 0 to 10 (exclusive) with step size 1
 arr = np.arange(0, 10, 2)
 
 # Print the array
 print(arr)
 [1 3 5 7 9]

2、查看数组信息

numpy.shape: 返回一个示意数组形态的元组。

numpy.ndim: 返回数组的维度数。

numpy.dtype: 获取数组中元素的数据类型。能够是 int 型,float 型,bool 型等等。

3、数组操作函数

numpy.reshape: 扭转数组的形态。

 # Create a 1-dimensional array
 arr = np.array([1, 2, 3, 4, 5, 6])
 
 # Reshape the array to a 2x3 matrix
 reshaped_arr = np.reshape(arr, (2, 3))
 
 [[1 2 3]
  [4 5 6]]

numpy.transpose: 用于排列数组的维度。它返回一个轴调换后的新数组。

 # Create a 2-dimensional array
 arr = np.array([[1, 2, 3],
                 [4, 5, 6]])
 
 # Transpose the array
 transposed_arr = np.transpose(arr)
 [[1 4]
  [2 5]
  [3 6]]

numpy.concatate: 沿现有轴连贯数组。

 # Create two 1-dimensional arrays
 arr1 = np.array([1, 2, 3])
 arr2 = np.array([4, 5, 6])
 
 # Concatenate the arrays along axis 0 (default)
 concatenated_arr = np.concatenate((arr1, arr2))
 [1 2 3 4 5 6]

numpy.split: 宰割数据,numpy.resize: 扭转数组的形态和大小。

numpy.vstack: 将多个数组垂直重叠以创立一个新数组。

 # Create two 1-dimensional arrays
 arr1 = np.array([1, 2, 3])
 arr2 = np.array([4, 5, 6])
 
 # Vertically stack the arrays
 stacked_arr = np.vstack((arr1, arr2))
 [[1 2 3]
  [4 5 6]]

numpy.hstack: 与 vstack 相似,然而是程度重叠数组。

4、数学函数

numpy.sum: 计算数组元素的和。

numpy.mean: 计算数组的算术平均值。

numpy.max: 返回数组中的最大值。

numpy.min: 返回数组中的最小值。

numpy.abs: 计算元素的绝对值。

numpy.exp: 计算所有元素的指数。

numpy.subtract: 对两个数组的对应元素进行减法运算。

numpy.multiply: 对两个数组的对应元素进行乘法运算。

numpy.divide: 对两个数组的对应元素进行除法运算。

numpy.sin: 计算数组中每个元素的正弦值。

numpy.cos: 计算数组中每个元素的余弦值。

numpy.log: 计算数组中每个元素的自然对数(以 e 为底的对数)。

5、统计函数

numpy.std: 计算数组的标准差。

 # Create a 1-dimensional array
 arr = np.array([1, 2, 3, 4, 5])
 
 # Compute the standard deviation of the array
 std = np.std(arr)
 1.4142135623730951

numpy.var: 计算数组的方差。

numpy.histogram: 计算一组数据的直方图。

numpy.percentile: 计算数组的第 n 个百分位数。它返回低于给定百分比的数据的值。

 data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
 
 # Calculate the 50th percentile (median) of the data
 median = np.percentile(data, 50)
 
 # Calculate the 25th and 75th percentiles (quartiles) of the data
 q1 = np.percentile(data, 25)
 q3 = np.percentile(data, 75)
 
 Median: 5.5
 Q1: 3.25
 Q3: 7.75

numpy.corcoef: 计算两个数组之间的相关系数。numpy.mean: 计算数组元素的平均值。numpy.median: 计算数组元素的中位数。

numpy.random.rand: 在区间 [0,1] 内从均匀分布生成随机数数组

 # Generate a 1-dimensional array of random numbers
 random_array = np.random.rand(5)
 [0.35463311 0.67659889 0.5865293  0.77127035 0.13949178]

numpy.random.normal: 从正态 (高斯) 散布生成随机数

 # Generate a random number from a normal distribution
 random_number = np.random.normal()
 -0.6532785285205665

6、线性代数函数

numpy.dot: 计算两个数组的点积。

 # Create two arrays
 a = np.array([1, 2, 3])
 b = np.array([4, 5, 6])
 
 # Compute the dot product of the arrays
 dot_product = np.dot(a, b)
 
 32

numpy.linalg.inv: 计算一个方阵的逆, numpy.linalg.eig: 一个方阵的特征值和特征向量。numpy.linalg.solve: 求解一个线性方程组。

7、排序函数

numpy.sort: 沿指定轴返回数组的排序正本

 # Create a 2D array
 arr = np.array([[3, 1, 5], [2, 4, 6]])
 
 # Sort the array along the second axis (columns)
 sorted_arr = np.sort(arr, axis=1)
 
 [[1 3 5]
  [2 4 6]]

numpy.argsort: 返回按升序对数组排序的索引

 # Create an array
 arr = np.array([3, 1, 5, 2, 4])
 
 # Get the indices that would sort the array
 sorted_indices = np.argsort(arr)
 
 [1 3 0 4 2]

8、其余一些高级的函数

numpy.unique: 在数组中查找惟一的元素。

 arr = np.array([2, 1, 3, 2, 1, 4, 5, 4])
 
 # Get the unique elements of the array
 unique_values = np.unique(arr)
 [1 2 3 4 5]

numpy.fft: 傅里叶变换的函数。

numpy.ma: 供对掩码数组的反对。

  • numpy.ma.array: 从现有的数组或序列创立一个掩码数组。
  • numpy.ma.masked_array: 从现有数组和掩码中创立一个掩码数组。
  • numpy.ma.mask: 示意掩码数组中的掩码值。
  • numpy.ma.masked_invalid: 屏蔽数组中有效的 (NaN, Inf) 元素。
  • numpy.ma.masked_greate, numpy.ma.masked_less: 掩码大于或小于给定值的元素。
 arr = np.array([1, 2, 3, np.nan, 5])
 
 # Create a masked array by masking the invalid values
 masked_arr = ma.masked_invalid(arr)
 [1 2 3 5]

numpy.apply_along_axis: 沿着数组的特定轴利用函数。

numpy.wheres: 一个条件函数,依据给定条件返回数组中满足条件的元素的索引或值。

 condition = np.array([True, False, True, False])
 
 # Create two arrays
 array_true = np.array([1, 2, 3, 4])
 array_false = np.array([5, 6, 7, 8])
 
 result = np.where(condition, array_true, array_false)
 
 [1 6 3 8]

以上就是 Numpy 最常常被应用的函数,心愿对你有所帮忙。

https://avoid.overfit.cn/post/3409c6e694a44e9cb9b9e6be7930801c

作者:alimejor

正文完
 0