NumPy学习笔记
本文是我在学习过程中收集的 numpy 方法,并做了记录。
NumPy 方法
np.ceil(x, y) 限制元素范围
- x 输入的数据
- y float 型,每个元素的上限
1 | housing["income_cat"] = np.ceil(housing["median_income"] / 1.5) # 每个元素都除1.5 |
permutation(x) 随机生成一个排列或返回一个 range
如果 x 是一个多维数组,则只会沿着它的第一个索引进行混洗。
1 | import numpy as np |
numpy.argmax() 返回沿轴的最大值的索引
返回沿轴的最大值的索引。
1 | # some_digit_scores 内容 |
- a : array_like; 输入数组
- axis : int, optional; 默认情况下,索引是放在平面数组中,否则沿着指定的轴。
- out : array, optional; 如果提供,结果将被插入到这个数组中。它应该是适当的形状和 dtype。
np.linalg.inv() 计算矩阵的逆
1 | X_b = np.c_[np.ones((100, 1)), X] # add x0 = 1 to each instance |
- a : (…, M, M) array_like;被求逆的矩阵
numpy.dot(a, b, out=None) 计算两个数组的点积
1 | >>> np.dot(3, 4) |
- a : array_like;First argument.
- b : array_like;Second argument.
numpy.ndarray.T() 计算矩阵的转置
与self.transpose()
相同,如果self.ndim < 2
则返回它自身。
1 | >>> x = np.array([[1.,2.],[3.,4.]]) |
numpy.random.seed() 生成器种子
该方法由RandomState
初始化,它可以被重新设置。
1 | np.random.seed(42) |
- seed : int or array_like, optional;必须为 32 位无符号整数。
numpy.random.randn() 从标准正太分布返回样本
1 | >>> theta = np.random.randn(2,1) |
参数
- d0, d1, …, dn : int, optional;返回的数组维度,应该都是正值。如果没有给出,将返回一个 Python float 值。
返回值
- Z : ndarray or float;一个经过标准正态分布抽样的,
(d0, d1, ..., dn)
维度的浮点数组。
numpy.array() 创建一个数组
1 | theta_path_bgd = np.array(theta_path_bgd) |
- object : array_like
- dtype : data-type, optional
numpy.random.rand()&nmbsp;生成给定 shap 的随机值
1 | m = 100 |
- d0, d1, …, dn : int, optional;返回的数组维度,必须是正值。如果为空,则返回一个 Python float 值。
numpy.linspace() 在指定区间返回间隔均匀的样本[start, stop]
1 | X_new=np.linspace(-3, 3, 100).reshape(100, 1) |
- start : scalar;序列的起始值
- stop : scalar;序列的结束值
- num : int, optional;要生成的样本数量,默认为 50 个。
- endpoint : bool, optional;若为 True 则包括结束值,否则不包括结束值,即[start, stop)区间。默认为 True。
- dtype : dtype, optional;输出数组的类型,若未给出则从输入数据推断类型。
meshgrid() 从坐标向量返回坐标矩阵
1 | >>> nx, ny = (3, 2) |
- x1, x2,…, xn : array_like;代表网格坐标的一维数组。
- indexing : {‘xy’, ‘ij’}, optional;输出的笛卡儿(’xy’,默认)或矩阵(’ij’)索引。
- sparse : bool, optional;如果为 True 则返回稀疏矩阵以减少内存,默认为 False。
norm() 矩阵或向量范数
1 | t1a, t1b, t2a, t2b = -1, 3, -1.5, 1.5 |
- x : array_like;输入的数组,如果
axis
是 None,则x
必须是 1-D 或 2-D。 - ord : {non-zero int, inf, -inf, ‘fro’, ‘nuc’}, optional;范数的顺序,inf 表示 numpy 的 inf 对象。
- axis : {int, 2-tuple of ints, None}, optional
- keepdims : bool, optional
以下范数可以被计算:
| ord | norm for matrices | norm for vectors|
|–|–|–|
|None | Frobenius norm | 2-norm|
|‘fro’ | Frobenius norm | –|
|‘nuc’ | nuclear norm | –|
|inf | max(sum(abs(x), axis=1)) | max(abs(x))|
|-inf | min(sum(abs(x), axis=1)) | min(abs(x))|
|0 | – | sum(x != 0)|
|1 | max(sum(abs(x), axis=0)) | as below|
|-1 | min(sum(abs(x), axis=0)) | as below|
|2 | 2-norm (largest sing. value) | as below|
|-2 | smallest singular value | as below|
|other | – | sum(abs(x)ord)(1./ord)|
对于ord <= 0
的值,它严格来说不是数学规范的范数,但它作为数值目的任然有用。
unravel_index() 将平面索引或平面索引数组转换为坐标数组的元组
1 | >>> np.unravel_index([22, 41, 37], (7,6)) |
- indices : array_like;一个整数数组,其元素是索引到维数组 dims 的平坦版本中。
- dims : tuple of ints;用于分解索引的数组的形状。
- order : {‘C’, ‘F’}, optional;决定
indices
应该按 row-major (C-style) or column-major (Fortran-style) 顺序。
mean() 计算沿指定轴的算术平均值
1 | >>> a = np.array([[1, 2], [3, 4]]) |
- a : array_like;包含要求平均值的数组,如果不是数组,则尝试进行转换。
- axis : None or int or tuple of ints, optional;计算平均值的轴,默认计算扁平数组。
- dtype : data-type, optional;用于计算平均值的类型。
- out : ndarray, optional
本文作者 : HeoLis
原文链接 : https://ishero.net/NumPy%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
学习、记录、分享、获得