Numpy
- 常用函数
- numpy.genfromtxt(**fname** = "",delimiter = "", dtype = "",**skip_header** = 1)
- numpy.array(xxx)
- `numpy.ravel`**(**a**,** *order='C'***)**
- ndarray.`astype`**(**dtype**,** *order='K'***,** *casting='unsafe'***,** *subok=True***,** *copy=True***)**
- ndarray.`min`**(**axis=None**,** *out=None***,** *keepdims=False***)**
- ndarray.`sum`**(**axis=None**,** *out=None***,** *keepdims=False***)**
- `numpy.exp`**(**x)
- `numpy.sqrt`**(**x)
- `numpy.floor`**(**x)
- `numpy.arange`**(**[***start***, **]**stop***,** **[**step**,** **]**dtype=None**)**
- `ndarray.reshape`**(**shape**,** *order='C'***)**
- `numpy.zeros`**(**shape**,** *dtype=float***,** *order='C'***)**
- `numpy.ones`**(**shape**,** *dtype=None***,** *order='C'***)**
- `numpy.random.random`**(**size=None**)**
- `numpy.linspace`**(**start**,** *stop***,** *num=50***,** *endpoint=True***,** *retstep=False***,** *dtype=None***,** *axis=0***)**
- `numpy.hstack`**(***tup***)**
- `numpy.vstack`**(***tup***)**
- `numpy.hsplit`**(***ary***,** *indices_or_sections***)**
- `numpy.vsplit`**(***ary***,** *indices_or_sections***)**
- `numpy.argmax`**(***a***,** *axis=None***,** *out=None***)**
- `numpy.tile`**(***A***,** *reps***)**
- `numpy.sort`**(***a***,** *axis=-1***,** *kind='quicksort'***,** *order=None***)**
- 常用技巧
常用函数
numpy.genfromtxt(fname = “”,delimiter = “”, dtype = “”,skip_header = 1)
- fname: 读取文件路径
- delimiter: 用于分隔值的字符串。默认情况下,任何连续的空格都用作分隔符。也可以提供整数或整数序列作为每个字段的宽度。
- dtype: 返回值ndarray中数据的类型。
- skip_header:要在文件开头跳过的行数。
- 返回值: <class ‘numpy.ndarray’> —— (其实就是一个矩阵)
- 作用:读取 “txt” 文本数据
numpy.array(xxx)
- 入参: list 类型 的值。
- 作用: 将数据从 list 类型 转换成 ndarray 类型。
- note:入参list中的类型保持一致,若不同,将自动进行类型的转换。
numpy.ravel
(a, order='C’)
- 返回一个连续的扁平数组(一维数组)。
ndarray.astype
(dtype, order='K’, casting='unsafe’, subok=True**,** copy=True**)**
- dtype:要转换数组的Typecode或数据类型
ndarray.min
(axis=None, out=None**,** keepdims=False**)**
- return 沿给定轴返回最小值
- 与 numpy.amin**(a,** axis=None**,** out=None**,** keepdims=, initial=) 等效
- axis: 轴或轴沿其操作。默认情况下,使用展平输入。 1.7.0版中的新功能。 如果这是一个整数元组,则在多个轴上选择最小值,而不是像以前那样选择单个轴或所有轴。
ndarray.sum
(axis=None, out=None**,** keepdims=False**)**
- return 返回给定轴上的数组元素的总和。
- 与 numpy.sum**(a,** axis=None**,** out=None**,** keepdims=, initial=) 等效
- axis: 轴或轴沿其操作。默认情况下,使用展平输入。 1.7.0版中的新功能。 如果这是一个整数元组,则在多个轴上选择最小值,而不是像以前那样选择单个轴或所有轴。
- axis = 0 : 按列进行
- axis = 1 : 按行进行
numpy.exp
**(**x)
- 计算输入数组中所有元素的指数。
numpy.sqrt
**(**x)
- 以元素方式返回数组的非负平方根。
numpy.floor
**(**x)
- 以元素方式返回输入的下取整。
numpy.arange
([start, ]stop,* [step, ]dtype=None)
- 在给定间隔内返回均匀间隔的值。
- stop: 间隔结束。间隔不包括此值,除非在某些情况下,step不是整数,浮点舍入会影响out的长度。
- 返回的是ndarray而不是列表。
ndarray.reshape
(shape, order='C’)
- 返回包含具有新形状的相同数据的数组。
- 与
numpy.reshape
(a, newshape**,** order='C’) 等效 - shape: 新形状应与原始形状兼容。如果是整数,则结果将是该长度的1-D数组。一个形状尺寸可以是 -1。在这种情况下,该值是从数组长度和剩余维度推断出来的。
numpy.zeros
(shape, dtype=float**,** order='C’)
- 返回给定形状和类型的新数组,用零填充。
numpy.ones
(shape, dtype=None**,** order='C’)
- 返回给定形状和类型的新数组,用" 1 "填充。
numpy.random.random
(size=None)
- 在半开区间[0.0,1.0]中返回随机浮点数。
- 结果来自所述间隔的“连续均匀”分布。要采样乘以random_sample的输出(b-a)并添加。
- size: 整数的int或元组
numpy.linspace
(start, stop**,** num=50**,** endpoint=True**,** retstep=False**,** dtype=None**,** axis=0**)**
- 在指定的间隔内返回均匀间隔的数字。 返回num均匀间隔的样本,在[start,stop]区间内计算。 可以选择排除间隔的终点。 版本1.16.0中已更改:现在支持非标量启动和停止。
numpy.hstack
(tup)
- 作用: 按顺序堆叠数组(列式)—— 横着进行拼接
- tup:除了第二轴之外的所有阵列必须具有相同的形状,除了可以是任何长度的1-D阵列。
numpy.vstack
(tup)
- 作用: 垂直堆叠数组(行方式)—— 竖着进行拼接
- tup:除了第一个轴之外,阵列必须具有相同的形状。 1-D阵列必须具有相同的长度。
numpy.hsplit
(ary, indices_or_sections**)**
- 将 ary 按照 indices_or_sections 格式进行***横向***切割
- indices_or_sections:
- 可以为数字n——切分为块
- 可以为元组 —— 按照切片的形式进行切割
numpy.vsplit
(ary, indices_or_sections**)**
- 将 ary 按照 indices_or_sections 格式进行***纵向***切割
- indices_or_sections:
- 可以为数字n——切分为块
- 可以为元组 —— 按照切片的形式进行切割
numpy.argmax
(a, axis=None**,** out=None**)**
- 返回沿轴的最大值的索引。
- axis: 默认情况下,索引进入展平数组,否则沿指定轴。
numpy.tile
(A, reps**)**
- 通过重复A重复给出的次数来构造数组。
- 如果reps的长度为d,则结果的维度为max(d,A.ndim)。
- reps: 元组类型。沿每个轴重复A的次数。
numpy.sort
(a, axis=-1**,** kind='quicksort’, order=None**)**
- 返回数组的已排序副本
- axis: Axis沿着它排序。如果为None,则在排序之前将数组展平。默认值为-1,它沿最后一个轴排序。
- 通过 A[numpy.argsort(A)] 也可以将A进行排序
常用技巧
print(help(xxx))
- 查看有关 XXX 的官方帮助文档,全是英文,建议直接看Demo 代码。
print(xxx.shape)
- 查看 xxx 的shape (行,列) ,eg: (4,) ; (2,3)
- 方便debug调试
Numpy 中获取数据(索引、切片)
- 索引: xxx[x,y] —— 假设为2维数据
- x,y 为目标数据在矩阵中的位置
- 切片:xxx[:,1] —— 假设为2维数据
- :代表 所有的
- :遵循 左闭右开原则
equal_result = (vector == 10 )
- 会将vector中的所有元素与10进行比较,且返回与vector相同数据格式的值,但dtype属性不一定一样
- 返回的结果,可以当成索引,vector[equal_result] - 用于返回元素值为True位置的元素
逻辑判断 (与或非)
- 与: &
- 或: |
- 非: !
ndarray.ndim
- 返回 ndarray 的维数。
ndarray.dtype.name
- 返回 ndarray 的dtype 的 name。
ndarray.size
- 返回 ndarray 中 元素的个数。
矩阵的乘法
- A * B : 对应位置元素相乘。
- A.dot(B) : 矩阵的内积操作。
矩阵的转置
- vector.T : 返回vector的转置矩阵
矩阵的复制
- A = B : A与B将同时指向相同内存元素,改变其中一方,另一方也会相应进行改变
- A = B.vew() : 此操作会将 B 进行***浅复制***,他们不是指向同一处地址 且 改变其中一方的shape ,另一方的shape不会进行修改;但是改变其中一方的元素的值,另一方也会对应进行改变。 (共用一套值)
- A = B.copy() :此操作会将 B 进行***深复制***,A与B互不影响。