numpy函数学习

1.array 创建数组方法

a = np.arang(25)
a = a.reshape((5,5))
# print(type(a)) # print(a.dtype) # print(a.size) # print(a.shape) # print(a.itemsize) # print(a.ndim) # print(a.nbytes)

方法:reshape 改变形状

     // type:对象类型

      dtype:数据类型 datatype简写

     size : 数组大小

     itemsize:属性是每个项占用的字节数。这个数组的数据类型是int 64,一个int 64中有64位,一个字节中有8位,除以64除以8,你就可以得到它占用了多少字节

     ndim:维数

     nbytes:属性是数组中的所有数据消耗掉的字节数。你应该注意到,这并不计算数组的开销,因此数组占用的实际空间将稍微大一点

 

  dot() 函数计算两个数组的点积。它返回的是一个标量(只有大小没有方向的一个值)而不是数组。

 

 

矩阵和矢量产品

 

    • dot(a, b[, out]) 两个数组的点积。
      linalg.multi_dot(arrays) 在单个函数调用中计算两个或多个数组的点积,同时自动选择最快的求值顺序。
    • vdot(a, b) 返回两个向量的点积。
    • inner(a, b) 两个数组的内积。
    • outer(a, b[, out]) 计算两个向量的外积。
    • matmul(a, b[, out]) 两个数组的矩阵乘积。
    • tensordot(a, b[, axes]) 对于数组> = 1-D,沿指定轴计算张量点积。
    • einsum(subscripts, *operands[, out, dtype, …]) 评估操作数上的爱因斯坦求和约定。
    • einsum_path(subscripts, *operands[, optimize]) 通过考虑中间数组的创建,评估einsum表达式的最低成本收缩顺序。
    • linalg.matrix_power(M, n) 将方阵提高到(整数)幂n。
    • kron(a, b) 两个阵列的Kronecker产品。

 

 

矩阵特征值

 

  • linalg.eig(a) 计算正方形阵列的特征值和右特征向量。
  • linalg.eigh(a[, UPLO]) 返回Hermitian或对称矩阵的特征值和特征向量。
  • linalg.eigvals(a) 计算一般矩阵的特征值。
  • linalg.eigvalsh(a[, UPLO]) 计算Hermitian或实对称矩阵的特征值。

 

规范和其他数字

 

  • linalg.norm(x[, ord, axis, keepdims]) 矩阵或矢量规范。
  • linalg.cond(x[, p]) 计算矩阵的条件数。
  • linalg.det(a) 计算数组的行列式。
  • linalg.matrix_rank(M[, tol, hermitian]) 使用SVD方法返回阵列的矩阵等级
  • linalg.slogdet(a) Compute the sign and (natural) 数组行列式的对数。
  • trace(a[, offset, axis1, axis2, dtype, out]) 返回数组对角线的总和。

 

求解方程和反转矩阵

 

  • linalg.solve(a, b) 求解线性矩阵方程或线性标量方程组。
  • linalg.tensorsolve(a, b[, axes]) 求解x的张量方程ax = b。
  • linalg.lstsq(a, b[, rcond]) 将最小二乘解返回到线性矩阵方程。
  • linalg.inv(a) 计算矩阵的(乘法)逆。
  • linalg.pinv(a[, rcond]) 计算矩阵的(Moore-Penrose)伪逆。
  • linalg.tensorinv(a[, ind]) 计算N维数组的“逆”。

 

 

 

  linespace使用详解

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

在指定的间隔内返回均匀间隔的数字。

返回num均匀分布的样本,在[start, stop]。

这个区间的端点可以任意的被排除在外。

如图,返回大小为20的1-10之间的数组,平均分布的

 

 对比方法

 arangeSimilar to linspace, but uses a step size (instead of the number of samples).arange使用的是步长,而不是样本的数量 

  logspaceSamples uniformly distributed in log space.

 

b = np.arange(10)
print(b)

>>[0 1 2 3 4 5 6 7 8 9]

可以看这篇文章,写得很详细了。

 

 

 

     

posted @ 2019-07-26 16:44  不加班不熬夜的男子  阅读(229)  评论(0编辑  收藏  举报