Numpy的常用函数和常用技巧总结

常用函数

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互不影响。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值