python_Numpy_细致与高级使用

内部机制

ndarry主要构成的三要素

dtype:类型
shape:形状
strides:跨度

数据体系

np.issupdtype(arr.dtype,numpy.interger):判断数组dtype是否整数类型

generic
number
character
bool
object
integer
inexact
string
unicode
unsigend int
signed int
floating
complex

高级数组操作

数组重塑造

arr.reshape((4,-1)):重塑形状,降数据设为4行,自动列
arr.ravel():扁平化数据,在源数据上生产并返回一维数组ndarray
arr.flatten():扁平化数据,一副本返回一维数组ndarray

C和Fortran顺序

【重塑函数可设参数,表示行列优先的创建顺序】
order:默认是C行优先顺序创建,可设置值为[‘C’,‘F’,‘A’,‘K’]
arr.ravel(order='F'):扁平化列优先

数组合并与拆分

numpy.concatenate([arr1,arrr2],axis=0):以行为对象,链接列表内的数组,返回新ndarray
numpy.vstack((arr1,arr2))numpy.row_stack():以行为对象链接,链接的快捷方法
numpy.hstack((arr1,arr2))numpy.columns_stack():以列为对象链接,接链接的快捷方法
numpy.dstack(...):以面向‘深度的方式对数组进行堆叠
numpy.split(arr,[1,3],axis=0):按轴号拆分数组,轴号分在后面的数组里,链接的反函数,快捷方法有[‘hsplit’,‘vsplit’,‘dsplit’],分别沿轴0,1,2运作
numpy.r_[arr1,arr2]:以行为对象链接
numpy.c_[1:6,11:16,21:26]:先把切片解析为数组,再以列为对象链接

元素重复操作

arr.repeat(3,axis=0):把数组每行重复3次,返回增大的数组
arr.repeat([2,3,4]):按索引指定重复次数,0位置重复2次
numpy.tile(arr,2):铺瓷砖,水平重复整个arr2次
numpy.tile(arr,(3,2)):按布局重复铺设arr

花式索引函数

arr.take([3,6,2,1],axis=0):按指定索引读取数组
arr.put([]3,,6,2,1):修改指定位置的值,暂不支持axis,不建议使用

  • ufunc高级应用
  • dtype结构化和记录式数组
    【一个dtype对应一个元素,一个dtype可以以列表的形式包含多总类型,用元祖声明】

dtype结构和

import numpy as np 
dtype=[('x',np.float64),('y',np.int32)]
sarr=np.array([(1.5,6),(np.pi,-2)],dtype=dtype)
sarr
sarr[0]
sarr[0]['x']
sarr['x']

# ---
Out[]:
array([(1.5       ,  6), (3.14159265, -2)],dtype=[('x', '<f8'), ('y', '<i4')])

多维

import numpy as np 
dtype=[('x',np.int64,3),('y',np.int32)]
sarr=np.zeros(4,dtype=dtype)
sarr
sarr[0]
sarr[0]['x']
sarr['x']


# ---
Out[]:
array([([0, 0, 0], 0), ([0, 0, 0], 0), ([0, 0, 0], 0), ([0, 0, 0], 0)],dtype=[('x', '<i8', (3,)), ('y', '<i4')])

嵌套

import numpy as np 
dtype=[('x',[('a','f8'),('b','f4')]),('y',np.int32)]
sarr=np.array([((1,2),5),((3,4),6)],dtype=dtype)
sarr
sarr[0]
sarr[0]['x']
sarr['x']

# ---
Out[]:
array([((1., 2.), 5), ((3., 4.), 6)],dtype=[('x', [('a', '<f8'), ('b', '<f4')]), ('y', '<i4')])

排序

arr[:,0].sort():只对第一列进行升序
arr.sort(axis=1):以列为对象排序,同
arr[:,::-1]:返回以列为对象额返序列表
numpy.sort(arr):功能相同
numpy.lexsort(arr1,arr2):返回arr1索引器
arr.argsort(kind=‘mergesort’):返回可以升序排列的索引器,稳定排序
arr.searchsorted(9):对有序数组返回适合插入9的索引位置

高级数组输入输出

内存映射文件

  • calss numpy.memmap(path,dtype,mode,shape)
    mmap.flush():将修改数据写出磁盘
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值