Numpy 迭代数组,数组 *** 作

Numpy 迭代数组,数组 *** 作,第1张

Numpy 迭代数组 nditer()迭代器

np.nditer(array,order='C', op_flags=['readonly'],flags=[])

  1. order可以用C和F值,分别表示一行一行读和一列一列读。
  2. op_flags要写成列表+字符串形式,默认readonly只读。还有readwritewriteonly
  3. flags要用到再查资料

广播迭代

如果两个数组是可广播的,则会发生如下

Numpy数组 *** 作 修改数组形状
  1. numpy.reshape(arr, newshape, order='C')
  2. numpy.ndarray.flat
    这是一个数组元素迭代器,修改原数组时可以使用(见修改维度的broadcast函数)
  3. ndarray.flatten(order='C')
    返回一份数组拷贝,对拷贝所做的修改不会影响原始数组
  4. numpy.ravel(a, order='C')
    返回展开的数组的视图,修改会影响原数组
翻转数组
  1. numpy.transpose(arr, axes) 对换数组维度,其实就是转置

  2. ndarray.T 转置

  3. numpy.rollaxis(arr, axis, start)
    向后滚动到特定轴

  4. numpy.swapaxes(arr, axis1, axis2)
    交换两个轴,直接交换,就不用后滚了

修改数组维度
  1. ``numpy.broadcast(a,b)
    用于模仿广播的对象,它返回一个对象,该对象封装了将一个数组广播到另一个数组的结果。该函数使用两个数组作为输入参数

  2. numpy.broadcast_to(array, shape, subok)
    将数组广播到新形状。不符合广播规则的将返回valueError

  3. numpy.expand_dims(arr, axis)
    通过指定位置插入新轴来扩展数组

  4. numpy.squeeze(arr, axis)
    删除一维的条目

连接数组
  1. numpy.concatenate((a1, a2, ...), axis)
    在 axis上连接数组(如果三维:0轴深度,深度方向;1轴高,行方向;2轴宽,列方向)
  2. numpy.stack(arrays, axis)
    沿axis连接数组,同上
  3. numpy.hstack(a,b)
  4. numpy.vstack(a,b)
分割数组
  1. numpy.split(ary, indices_or_sections, axis)
    indices_or_sections :如果是整数,则按整数平分数组(如果不能平分会报错)。
  2. numpy.hsplit
  3. numpy.vsplit
数组添加和删除
  1. numpy.resize(arr, shape)
    如果新数组要大于原数组,则补充元素的副本
  2. numpy.append(arr, values, axis=None)
    函数在数组的末尾添加值。 追加 *** 作会分配整个数组,并把原来的数组复制到新数组中。 此外,输入数组的维度必须匹配否则将生成ValueError。
    append 函数返回的始终是一个一维数组,如果提供轴则返回原维度数组。
  3. numpy.insert(arr, obj, values, axis)
    obj为插入之前的索引,比如3则在3索引前插入
  4. Numpy.delete(arr, obj, axis)
  5. numpy.unique(arr, return_index, return_inverse, return_counts)
    删除重复元素
    return_index:如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式储
    return_inverse:如果为true,返回旧列表元素在新列表中的位置(下标),并以列表形式储
    return_counts:如果为true,返回去重数组中的元素在原数组中的出现次数

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/796825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存