文章目录
- 一、函数详解
- np.empty(num_points)
- np.zeros(shape, dtype=float, order='C')
- np.tile(A, reps)
- np.newaxis
- numpy.stack(arrays, axis=0)
- np.roll(a, shift, axis=None)
- 二、实例
- 矩阵进行扩展三行,使得每一行都与第一行相同
- 二维数组每行减去不同的数
一、函数详解
np.empty(num_points)
用于创建一个指定大小的未初始化的数组的函数。该函数会返回一个指定大小的数组,但是数组的内容是未定义的,即数组中的元素可能是任意值。
参数说明:
- num_points:指定数组的大小,可以是一个整数或元组
import numpy as np# 创建一个大小为5的未初始化数组
arr = np.empty(5)print(arr)# 输出结果可能会是类似于以下的内容(具体数值可能不同):
[1. 2. 3. 4. 5.]
np.zeros(shape, dtype=float, order=‘C’)
NumPy中用于创建指定形状的全零数组的函数。该函数接受一个表示数组形状的元组作为参数,并返回一个对应形状且所有元素都为零的数组。
参数解释:
- shape:表示数组形状的元组,如(2, 3)表示2行3列的数组
- dtype:可选参数,指定数组的数据类型,默认为float
- order:可选参数,指定数组元素在内存中的存储顺序,'C’表示按行存储,'F’表示按列存储
import numpy as np# 创建一个3x4的全零数组
zeros_array = np.zeros((3, 4))print(zeros_array)输出结果:
array([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])
np.tile(A, reps)
用于在不同维度上复制数组。具体来说,np.tile(A, reps)会将数组A沿各个维度复制指定的次数,形成一个新的数组。
参数解释:
- A:要复制的数组
- reps:指定每个维度上复制的次数,可以是一个整数或一个元组。如果reps是一个整数n,则表示沿着每个维度将数组复制n次;如果reps是一个元组(m, n),则表示沿着每个维度将数组复制m次沿第一个轴,n次沿第二个轴,依此类推。
import numpy as np# 创建一个数组
arr = np.array([1, 2, 3])# 将数组沿着第一个轴复制3次
result1 = np.tile(arr, 3)print(result1)# 输出结果为:
[1 2 3 1 2 3 1 2 3]A = np.array([[1, 2], [3, 4]])
result2 = np.tile(A, (2, 3))print(result2)# 输出结果为:
array([[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4],[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4]])
np.newaxis
一种在NumPy中用于改变数组维度的常见操作
当使用np.newaxis
时,它实际上是一个None
对象的别名,用于增加数组的维度。通过在切片操作中使用np.newaxis
,可以改变数组的维度,从而方便进行矩阵运算。
import numpy as np# 创建一个一维数组
arr = np.array([1, 2, 3, 4])# 使用np.newaxis增加一个新的轴
new_arr = arr[:, np.newaxis]print(new_arr)
print(new_arr.shape)输出结果:
array([[1],[2],[3],[4]])
(4, 1)
numpy.stack(arrays, axis=0)
用于沿着新的轴堆叠数组序列。具体来说,np.stack
可以将多个数组沿着指定的轴(axis)进行堆叠,生成一个新的数组。
参数说明:
arrays
:要堆叠的数组序列,可以是多个数组组成的列表或元组。axis
:指定沿着哪个轴进行堆叠。默认值为 0,表示沿着新的第一个轴进行堆叠。
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])stacked_array = np.stack((arr1, arr2))
print(stacked_array)输出结果:
[[1 2 3][4 5 6]]
np.roll(a, shift, axis=None)
用于对数组进行循环移位操作的函数。该函数可以将数组沿指定轴进行循环移位,即将数组的元素按照指定的偏移量进行重新排列。
参数说明:
- a:输入数组
- shift:循环移位的偏移量,可以是正数或负数
- axis:指定沿着哪个轴进行循环移位操作,如果不指定则将数组展平后进行移位操作
import numpy as np# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])# 对数组进行循环右移两位
result = np.roll(arr, 2)print(result)# 输出结果为:
[4 5 1 2 3]
二、实例
矩阵进行扩展三行,使得每一行都与第一行相同
import numpy as np# 定义原始矩阵
matrix = np.array([[1, 2, 3]])# 复制第一行,扩展为3行
extended_matrix = np.tile(matrix, (3, 1))print(extended_matrix)输出结果:
[[1 2 3][1 2 3][1 2 3]]
二维数组每行减去不同的数
import numpy as np# 创建输入数组
input_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 创建要减去的数组
to_subtract = np.array([1, 2, 3])# 使用广播功能实现减法操作
result = input_array - to_subtract[:, np.newaxis]print(result)输出结果为:
[[0 1 2][2 3 4][4 5 6]]