yun@dicom

导航

NumPy 可视化教程

NumPy 可视化教程

学习 Python, 尤其是机器学习领域, 要非常熟悉最基础的 NumPy 的基本用法.
对初学者 (包括我) 来说, NumPy 有点复杂, 用可视化效果来入门, 理解起来就容易多了.

1. 一维数组

创建数组

1. 给定初始值

\[\mathbf{A = np.array([2, 4, 6, 8])} = \colorbox{lightblue}{$ \begin{array}{c} 2\\ \hline 4\\ \hline 6\\ \hline 8\\ \end{array} $} \qquad \mathbf{B = np.array([1.5, 2.5, 3.5])} = \colorbox{lightgreen}{$ \begin{array}{c} 1.5\\ \hline 2.5\\ \hline 3.5\\ \end{array} $} \]

2. ones, zeros, rand (随机值)

\[\mathbf{np.ones(4)} = \colorbox{lightcoral}{$ \begin{array}{c} 1\\ \hline 1\\ \hline 1\\ \hline 1\\ \end{array} $} \qquad \mathbf{np.zeros(3)} = \colorbox{lavender}{$ \begin{array}{c} 0\\ \hline 0\\ \hline 0\\ \end{array} $} \qquad \mathbf{np.random.rand(3)} \approx \colorbox{peachpuff}{$ \begin{array}{c} 0.73\\ \hline 0.29\\ \hline 0.64\\ \end{array} $} \]

3. 顺序填充 (arange)

\[\mathbf{np.arange(0, 6, 2)} = \colorbox{lightyellow}{$ \begin{array}{c} 0\\ \hline 2\\ \hline 4\\ \end{array} $} \quad \text{(从0到6,步长2)} \qquad \mathbf{np.arange(5)} = \colorbox{lightcyan}{$ \begin{array}{c} 0\\ \hline 1\\ \hline 2\\ \hline 3\\ \hline 4\\ \end{array} $} \quad \text{(默认从0开始)} \]

4. 切片填充 (linspace)

\[\mathbf{np.linspace(0, 10, 5)} = \colorbox{palegreen}{$ \begin{array}{c} 0.0\\ \hline 2.5\\ \hline 5.0\\ \hline 7.5\\ \hline 10.0\\ \end{array} $} \quad \text{(0到10之间平均取5个数)} \]

5. 固定值填充 (full)

\[\mathbf{np.full(4, 3.14)} = \colorbox{thistle}{$ \begin{array}{c} 3.14\\ \hline 3.14\\ \hline 3.14\\ \hline 3.14\\ \end{array} $} \quad \text{(长度为4,全部填充为3.14)} \]

属性 (shape, size, ndim)

假设-1

\[\mathbf{A = np.array([1, 2, 3, 4, 5])} = \colorbox{lightblue}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \hline 4\\ \hline 5\\ \end{array} $} \]

那么-1

\[\mathbf{A.shape = (5,)} \quad \text{(形状:5个元素)} \quad \mathbf{A.size = 5} \quad \text{(总元素个数)} \quad \mathbf{A.ndim = 1} \quad \text{(维度:一维)} \]

索引

假设-2

\[\mathbf{A = np.array([10, 20, 30, 40, 50])} = \colorbox{lightgreen}{$ \begin{array}{ccccc} 10 & 20 & 30 & 40 & 50\\ \hline 0 & 1 & 2 & 3 & 4\\ \end{array} $} \]

那么-2

\[\mathbf{A[0]} = 10 \quad \mathbf{A[2]} = 30 \quad \mathbf{A[-1]} = 50 \quad \text{(最后一个元素)} \]

切片

假设-3

\[\mathbf{A = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])} \]

那么-3

\[\mathbf{A[2:6]} = \colorbox{lightcoral}{$ \begin{array}{c} 2\\ \hline 3\\ \hline 4\\ \hline 5\\ \end{array} $} \quad \text{(取索引2到5,不包括6)} \]

\[\mathbf{A[::2]} = \colorbox{lavender}{$ \begin{array}{c} 0\\ \hline 2\\ \hline 4\\ \hline 6\\ \hline 8\\ \end{array} $} \quad \text{(从开始到结束,步长为2)} \]

\[\mathbf{A[5:]} = \colorbox{peachpuff}{$ \begin{array}{c} 5\\ \hline 6\\ \hline 7\\ \hline 8\\ \hline 9\\ \end{array} $} \quad \text{(从索引5到末尾)} \]

聚合 - max, min, sum

假设-4

\[\mathbf{A = np.array([3, 1, 4, 1, 5, 9])} = \colorbox{lightyellow}{$ \begin{array}{c} 3\\ \hline 1\\ \hline 4\\ \hline 1\\ \hline 5\\ \hline 9\\ \end{array} $} \]

那么-4

\[\mathbf{np.max(A)} = 9 \quad \mathbf{np.min(A)} = 1 \quad \mathbf{np.sum(A)} = 3+1+4+1+5+9 = \colorbox{lightcyan}{23} \]

数组乘以数值 (缩放)

假设-5

\[\mathbf{A = np.array([1, 2, 3])} = \colorbox{palegreen}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \end{array} $} \]

那么-5

\[\mathbf{A \times 2} = \colorbox{lightblue}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \end{array} $} \times 2 = \colorbox{thistle}{$ \begin{array}{c} 1\times2\\ \hline 2\times2\\ \hline 3\times2\\ \end{array} $} = \colorbox{lightcoral}{$ \begin{array}{c} 2\\ \hline 4\\ \hline 6\\ \end{array} $} \]

两个数组的加减乘除

假设-6

\[\mathbf{A = np.array([1, 2, 3])} = \colorbox{lightblue}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \end{array} $} \qquad \mathbf{B = np.array([4, 5, 6])} = \colorbox{lightgreen}{$ \begin{array}{c} 4\\ \hline 5\\ \hline 6\\ \end{array} $} \]

那么-6

加法:

\[\mathbf{A + B} = \colorbox{lightblue}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \end{array} $} + \colorbox{lightgreen}{$ \begin{array}{c} 4\\ \hline 5\\ \hline 6\\ \end{array} $} = \colorbox{lightyellow}{$ \begin{array}{c} 1+4\\ \hline 2+5\\ \hline 3+6\\ \end{array} $} = \colorbox{lightcyan}{$ \begin{array}{c} 5\\ \hline 7\\ \hline 9\\ \end{array} $} \]

减法:

\[\mathbf{A - B} = \colorbox{lightblue}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \end{array} $} - \colorbox{lightgreen}{$ \begin{array}{c} 4\\ \hline 5\\ \hline 6\\ \end{array} $} = \colorbox{palegreen}{$ \begin{array}{c} 1-4\\ \hline 2-5\\ \hline 3-6\\ \end{array} $} = \colorbox{thistle}{$ \begin{array}{c} -3\\ \hline -3\\ \hline -3\\ \end{array} $} \]

乘法:

\[\mathbf{A \times B} = \colorbox{lightblue}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \end{array} $} \times \colorbox{lightgreen}{$ \begin{array}{c} 4\\ \hline 5\\ \hline 6\\ \end{array} $} = \colorbox{peachpuff}{$ \begin{array}{c} 1\times4\\ \hline 2\times5\\ \hline 3\times6\\ \end{array} $} = \colorbox{lavender}{$ \begin{array}{c} 4\\ \hline 10\\ \hline 18\\ \end{array} $} \]

除法:

\[\mathbf{B / A} = \colorbox{lightgreen}{$ \begin{array}{c} 4\\ \hline 5\\ \hline 6\\ \end{array} $} \div \colorbox{lightblue}{$ \begin{array}{c} 1\\ \hline 2\\ \hline 3\\ \end{array} $} = \colorbox{lightyellow}{$ \begin{array}{c} 4\div1\\ \hline 5\div2\\ \hline 6\div3\\ \end{array} $} = \colorbox{lightcyan}{$ \begin{array}{c} 4.0\\ \hline 2.5\\ \hline 2.0\\ \end{array} $} \]


2. 二维数组, 即矩阵

创建二维数组

1. 给定初始值

\[\mathbf{A = np.array([[1, 2, 3], [4, 5, 6]])} = \colorbox{lightblue}{$ \begin{array}{ccc} 1 & 2 & 3\\ \hline 4 & 5 & 6\\ \end{array} $} \]

\[\mathbf{B = np.array([[1.1, 2.2], [3.3, 4.4]])} = \colorbox{lightgreen}{$ \begin{array}{cc} 1.1 & 2.2\\ \hline 3.3 & 4.4\\ \end{array} $} \]

2. ones, zeros, rand (随机值)

\[\mathbf{np.ones((2, 3))} = \colorbox{lightcoral}{$ \begin{array}{ccc} 1 & 1 & 1\\ \hline 1 & 1 & 1\\ \end{array} $} \qquad \mathbf{np.zeros((3, 2))} = \colorbox{lavender}{$ \begin{array}{cc} 0 & 0\\ \hline 0 & 0\\ \hline 0 & 0\\ \end{array} $} \]

\[\mathbf{np.random.rand(2, 2)} \approx \colorbox{peachpuff}{$ \begin{array}{cc} 0.42 & 0.87\\ \hline 0.19 & 0.55\\ \end{array} $} \]

3. 顺序填充 (arange) 与 reshape

\[\mathbf{np.arange(6).reshape(2, 3)} = \colorbox{lightyellow}{$ \begin{array}{ccc} 0 & 1 & 2\\ \hline 3 & 4 & 5\\ \end{array} $} \]

4. 切片填充 (linspace) 与 reshape

\[\mathbf{np.linspace(0, 8, 6).reshape(2, 3)} = \colorbox{lightcyan}{$ \begin{array}{ccc} 0.0 & 1.6 & 3.2\\ \hline 4.8 & 6.4 & 8.0\\ \end{array} $} \]

5. 固定值填充 (full)

\[\mathbf{np.full((2, 3), 7)} = \colorbox{palegreen}{$ \begin{array}{ccc} 7 & 7 & 7\\ \hline 7 & 7 & 7\\ \end{array} $} \]

属性 (shape, size, ndim)

假设-7

\[\mathbf{A = np.array([[1, 2, 3], [4, 5, 6]])} = \colorbox{lightblue}{$ \begin{array}{ccc} 1 & 2 & 3\\ \hline 4 & 5 & 6\\ \end{array} $} \]

那么-7

\[\mathbf{A.shape = (2, 3)} \quad \text{(2行3列)} \quad \mathbf{A.size = 6} \quad \text{(总元素个数)} \quad \mathbf{A.ndim = 2} \quad \text{(维度:二维)} \]

索引

假设-8

\[\mathbf{A = np.array([[10, 20, 30], [40, 50, 60]])} = \colorbox{lightgreen}{$ \begin{array}{ccc} 10 & 20 & 30\\ \hline 40 & 50 & 60\\ \end{array} $} \]

那么-8

\[\mathbf{A[0, 1]} = 20 \quad \text{(第0行第1列)} \]

\[\mathbf{A[1, -1]} = 60 \quad \text{(第1行最后一列)} \]

切片

假设-9

\[\mathbf{A = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])} = \colorbox{lightcoral}{$ \begin{array}{cccc} 1 & 2 & 3 & 4\\ \hline 5 & 6 & 7 & 8\\ \hline 9 & 10 & 11 & 12\\ \end{array} $} \]

那么-9

取一行:

\[\mathbf{A[1]} = \colorbox{lavender}{$ \begin{array}{cccc} 5 & 6 & 7 & 8\\ \end{array} $} \]

取一列:

\[\mathbf{A[:, 2]} = \colorbox{peachpuff}{$ \begin{array}{c} 3\\ \hline 7\\ \hline 11\\ \end{array} $} \]

取子矩阵:

\[\mathbf{A[0:2, 1:3]} = \colorbox{lightyellow}{$ \begin{array}{cc} 2 & 3\\ \hline 6 & 7\\ \end{array} $} \]

聚合 - max, min, sum

假设-10

\[\mathbf{A = np.array([[1, 2, 3], [4, 5, 6]])} = \colorbox{lightcyan}{$ \begin{array}{ccc} 1 & 2 & 3\\ \hline 4 & 5 & 6\\ \end{array} $} \]

那么-10

\[\mathbf{np.max(A)} = 6 \quad \mathbf{np.min(A)} = 1 \quad \mathbf{np.sum(A)} = 1+2+3+4+5+6 = \colorbox{palegreen}{21} \]


按行或列聚合 - max, min, sum

假设-11

\[\mathbf{A = np.array([[3, 7, 2], [8, 4, 6], [1, 9, 5]])} = \colorbox{lightblue}{$ \begin{array}{ccc} 3 & 7 & 2\\ \hline 8 & 4 & 6\\ \hline 1 & 9 & 5\\ \end{array} $} \]

那么-11

按行计算 (along rows)

按行计算最大值(找出每行的最大值):

\[\mathbf{np.max(A, axis=1)} = \text{检查每一行,找出最大值} \]

第0行: \(\max(3, 7, 2) = 7\)

第1行: \(\max(8, 4, 6) = 8\)

第2行: \(\max(1, 9, 5) = 9\)

\[\colorbox{lightblue}{$ \begin{array}{ccc} 3 & 7 & 2\\ \hline 8 & 4 & 6\\ \hline 1 & 9 & 5\\ \end{array} $} \Rightarrow \colorbox{lightgreen}{$ \begin{array}{c} \max(3,7,2)\\ \hline \max(8,4,6)\\ \hline \max(1,9,5)\\ \end{array} $} \Rightarrow \mathbf{np.max(A, axis=1)} = \colorbox{lightcoral}{$ \begin{array}{c} 7\\ \hline 8\\ \hline 9\\ \end{array} $} \]

按行计算最小值 (min along rows)

使用相同的矩阵:

\[\mathbf{np.min(A, axis=1)} = \text{检查每一行,找出最小值} \]

第0行: \(\min(3, 7, 2) = 2\)

第1行: \(\min(8, 4, 6) = 4\)

第2行: \(\min(1, 9, 5) = 1\)

\[\colorbox{lightblue}{$ \begin{array}{ccc} 3 & 7 & 2\\ \hline 8 & 4 & 6\\ \hline 1 & 9 & 5\\ \end{array} $} \Rightarrow \colorbox{lavender}{$ \begin{array}{c} \min(3,7,2)\\ \hline \min(8,4,6)\\ \hline \min(1,9,5)\\ \end{array} $} \Rightarrow \mathbf{np.min(A, axis=1)} = \colorbox{peachpuff}{$ \begin{array}{c} 2\\ \hline 4\\ \hline 1\\ \end{array} $} \]


按列计算 (along columns)

按列计算最大值 (max along columns)

使用相同的矩阵:

\[\mathbf{np.max(A, axis=0)} = \text{检查每一列,找出最大值} \]

第0列: \(\max(3, 8, 1) = 8\)

第1列: \(\max(7, 4, 9) = 9\)

第2列: \(\max(2, 6, 5) = 6\)

\[\colorbox{lightblue}{$ \begin{array}{ccc} 3 & 7 & 2\\ \hline 8 & 4 & 6\\ \hline 1 & 9 & 5\\ \end{array} $} \Rightarrow \colorbox{lightyellow}{$ \begin{array}{ccc} \max(3,8,1) & \max(7,4,9) & \max(2,6,5)\\ \end{array} $} \Rightarrow \mathbf{np.max(A, axis=1)} = \colorbox{lightcyan}{$ \begin{array}{ccc} 8 & 9 & 6\\ \end{array} $} \]

按列计算最小值 (min along columns)

使用相同的矩阵:

\[\mathbf{np.min(A, axis=0)} = \text{检查每一列,找出最小值} \]

第0列: \(\min(3, 8, 1) = 1\)

第1列: \(\min(7, 4, 9) = 4\)

第2列: \(\min(2, 6, 5) = 2\)

\[\colorbox{lightblue}{$ \begin{array}{ccc} 3 & 7 & 2\\ \hline 8 & 4 & 6\\ \hline 1 & 9 & 5\\ \end{array} $} \Rightarrow \colorbox{palegreen}{$ \begin{array}{ccc} \min(3,8,1) & \min(7,4,9) & \min(2,6,5)\\ \end{array} $} \Rightarrow \mathbf{np.min(A, axis=1)} = \colorbox{thistle}{$ \begin{array}{ccc} 1 & 4 & 2\\ \end{array} $} \]


假设-12

\[\mathbf{A = np.array([[1, 2, 3], [4, 5, 6]])} = \colorbox{lightblue}{$ \begin{array}{ccc} 1 & 2 & 3\\ \hline 4 & 5 & 6\\ \end{array} $} \]

那么-12

按行求和(每行相加):

\[\mathbf{np.sum(A, axis=1)} = \colorbox{lightblue}{$ \begin{array}{ccc} 1 & 2 & 3\\ \hline 4 & 5 & 6\\ \end{array} $} \Rightarrow \colorbox{lightgreen}{$ \begin{array}{c} 1+2+3\\ \hline 4+5+6\\ \end{array} $} = \colorbox{lightcoral}{$ \begin{array}{c} 6\\ \hline 15\\ \end{array} $} \]

按列求和(每列相加):

\[\mathbf{np.sum(A, axis=0)} = \colorbox{lightblue}{$ \begin{array}{ccc} 1 & 2 & 3\\ \hline 4 & 5 & 6\\ \end{array} $} \Rightarrow \colorbox{lavender}{$ \begin{array}{ccc} 1+4 & 2+5 & 3+6\\ \end{array} $} = \colorbox{peachpuff}{$ \begin{array}{ccc} 5 & 7 & 9\\ \end{array} $} \]


总结表格

操作 说明 结果
np.max(A, axis=1) 每行的最大值 \([7, 8, 9]\)
np.min(A, axis=1) 每行的最小值 \([2, 4, 1]\)
np.max(A, axis=0) 每列的最大值 \([8, 9, 6]\)
np.min(A, axis=0) 每列的最小值 \([1, 4, 2]\)

记忆技巧:

  • axis=0 表示跨行操作(沿着行的方向,即垂直方向),所以是按计算
  • axis=1 表示跨列操作(沿着列的方向,即水平方向),所以是按计算

可视化理解:

\[\text{axis=0: 从上到下 ↓ (按列)}\quad \text{axis=1: 从左到右 → (按行)} \]

通过上述可视化过程,方便我们更清楚地理解 NumPy 中按行和按列进行聚合操作的区别!

padding 外围填充

假设-13

\[\mathbf{A = np.array([[1, 2], [3, 4]])} = \colorbox{lightyellow}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \]

那么-13

用0在四周填充一圈:

\[\mathbf{np.pad(A, pad_width=1, constant_values=0)} = \colorbox{lightcyan}{$ \begin{array}{cccc} 0 & 0 & 0 & 0\\ \hline 0 & 1 & 2 & 0\\ \hline 0 & 3 & 4 & 0\\ \hline 0 & 0 & 0 & 0\\ \end{array} $} \]

乘以数值 (缩放)

假设-14

\[\mathbf{A = np.array([[1, 2], [3, 4]])} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \]

那么-14

\[\mathbf{A \times 3} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \times 3 = \colorbox{lightgreen}{$ \begin{array}{cc} 1\times3 & 2\times3\\ \hline 3\times3 & 4\times3\\ \end{array} $} = \colorbox{lightcoral}{$ \begin{array}{cc} 3 & 6\\ \hline 9 & 12\\ \end{array} $} \]

矩阵的加减乘除

假设-15

\[\mathbf{A = np.array([[1, 2], [3, 4]])} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \qquad \mathbf{B = np.array([[5, 6], [7, 8]])} = \colorbox{lightgreen}{$ \begin{array}{cc} 5 & 6\\ \hline 7 & 8\\ \end{array} $} \]

那么-15

矩阵加法:

\[\mathbf{A + B} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} + \colorbox{lightgreen}{$ \begin{array}{cc} 5 & 6\\ \hline 7 & 8\\ \end{array} $} = \colorbox{lavender}{$ \begin{array}{cc} 1+5 & 2+6\\ \hline 3+7 & 4+8\\ \end{array} $} = \colorbox{peachpuff}{$ \begin{array}{cc} 6 & 8\\ \hline 10 & 12\\ \end{array} $} \]

矩阵减法:

\[\mathbf{A - B} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} - \colorbox{lightgreen}{$ \begin{array}{cc} 5 & 6\\ \hline 7 & 8\\ \end{array} $} = \colorbox{lightyellow}{$ \begin{array}{cc} 1-5 & 2-6\\ \hline 3-7 & 4-8\\ \end{array} $} = \colorbox{lightcyan}{$ \begin{array}{cc} -4 & -4\\ \hline -4 & -4\\ \end{array} $} \]

矩阵乘法(元素对应相乘):

\[\mathbf{A \times B} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \times \colorbox{lightgreen}{$ \begin{array}{cc} 5 & 6\\ \hline 7 & 8\\ \end{array} $} = \colorbox{palegreen}{$ \begin{array}{cc} 1\times5 & 2\times6\\ \hline 3\times7 & 4\times8\\ \end{array} $} = \colorbox{thistle}{$ \begin{array}{cc} 5 & 12\\ \hline 21 & 32\\ \end{array} $} \]

矩阵除法(元素对应相除):

\[\mathbf{B / A} = \colorbox{lightgreen}{$ \begin{array}{cc} 5 & 6\\ \hline 7 & 8\\ \end{array} $} \div \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} = \colorbox{lightcoral}{$ \begin{array}{cc} 5\div1 & 6\div2\\ \hline 7\div3 & 8\div4\\ \end{array} $} = \colorbox{lavender}{$ \begin{array}{cc} 5.0 & 3.0\\ \hline 2.33 & 2.0\\ \end{array} $} \]

矩阵的点积

假设-16

\[\mathbf{A = np.array([[1, 2], [3, 4]])} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \qquad \mathbf{B = np.array([[5, 6], [7, 8]])} = \colorbox{lightgreen}{$ \begin{array}{cc} 5 & 6\\ \hline 7 & 8\\ \end{array} $} \]

那么-16

矩阵点积计算过程:

\[\mathbf{A \cdot B} = \colorbox{lightblue}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \cdot \colorbox{lightgreen}{$ \begin{array}{cc} 5 & 6\\ \hline 7 & 8\\ \end{array} $} \]

第一步:计算结果的第0行第0列元素

\[(1, 2) \cdot (5, 7) = 1\times5 + 2\times7 = 5 + 14 = 19 \]

第二步:计算结果的第0行第1列元素

\[(1, 2) \cdot (6, 8) = 1\times6 + 2\times8 = 6 + 16 = 22 \]

第三步:计算结果的第1行第0列元素

\[(3, 4) \cdot (5, 7) = 3\times5 + 4\times7 = 15 + 28 = 43 \]

第四步:计算结果的第1行第1列元素

\[(3, 4) \cdot (6, 8) = 3\times6 + 4\times8 = 18 + 32 = 50 \]

最终结果:

\[\mathbf{A \cdot B} = \colorbox{peachpuff}{$ \begin{array}{cc} 19 & 22\\ \hline 43 & 50\\ \end{array} $} \]

数学函数

假设-17

\[\mathbf{A = np.array([[0, \pi/2], [\pi, 3\pi/2]])} \approx \colorbox{lightyellow}{$ \begin{array}{cc} 0 & 1.57\\ \hline 3.14 & 4.71\\ \end{array} $} \]

那么-17

正弦函数:

\[\mathbf{np.sin(A)} \approx \colorbox{lightcyan}{$ \begin{array}{cc} 0.0 & 1.0\\ \hline 0.0 & -1.0\\ \end{array} $} \]

指数函数:

\[\mathbf{np.exp(A)} \approx \colorbox{palegreen}{$ \begin{array}{cc} 1.0 & 4.81\\ \hline 23.14 & 111.32\\ \end{array} $} \]

平方根:

\[\mathbf{np.sqrt(np.array([[1, 4], [9, 16]]))} = \colorbox{thistle}{$ \begin{array}{cc} 1 & 2\\ \hline 3 & 4\\ \end{array} $} \]

对数函数:

\[\mathbf{np.log(np.array([[1, 2.718], [7.389, 20.086]]))} \approx \colorbox{lightblue}{$ \begin{array}{cc} 0 & 1\\ \hline 2 & 3\\ \end{array} $} \]


这就是 NumPy 的基本操作!通过可视化这些数组和矩阵运算,方便我们直观地理解 NumPy 的工作原理。

posted on 2026-01-03 09:54  yun@dicom  阅读(0)  评论(0)    收藏  举报