numpy学习笔记

    xiaoxiao2023-10-31  154

    numpy

    import numpy as np

    (1)标量:除了 Python 的 int,你可以使用 uint8、int8、uint16、int16 等类型。

    s = np.array(5)

    (2)向量:可以将 Python 列表传递给 array 函数

    v = np.array([1,2,3])

    (3)矩阵:提供列表的列表,其中每个列表代表一行。

    m = np.array([[1,2,3], [4,5,6], [7,8,9]])

    (4)张量:张量与向量和矩阵一样,但张量可以有更多的维度。

    创建一个 3x3x2x1 的张量:

    t = np.array([[[[1],[2]],[[3],[4]],[[5],[6]]],[[[7],[8]],\

        [[9],[10]],[[11],[12]]],[[[13],[14]],[[15],[16]],[[17],[17]]]])

    t.shape打印矩阵的维度, 会返回 (3, 3, 2, 1)

    t[2][1][1][0] 将返回 16

     

    更改形状:

    v = np.array([1,2,3,4])       v.shape 会返回 (4,)

    x = v.reshape(1,4)   OR   x = v[None, :]     x.shape 会返回 (1,4)

    x = v.reshape(4,1)   OR   x = v[:, None]

     

    NumPy 矩阵乘法:

    (1)元素级乘法

    m * n

    np.multiply(m, n)

    (2)矩阵乘积

    a.shape (2,4); b.shape(4,3)

    c = np.matmul(a, b)

    有时候,在用 matmul 函数的地方,可能会看到 NumPy 的 dot 函数。

    如果矩阵是二维的,那么 dot 和 matmul 函数的结果是相同的。

     

    NumPy 矩阵转置:

    NumPy 在进行转置时不会实际移动内存中的任何数据,只是改变对原始矩阵的索引方式,所以是非常高效的。

    但是,这也意味着你要特别注意修改对象的方式,因为它们共享相同的数据。

    所以记住,将转置视为矩阵的不同视图,而不是完全不同的矩阵。

    m_t = m.T

     

    最新回复(0)