ITPub博客

首页 > 数据库 > 数据库开发技术 > numpy教程-上

numpy教程-上

原创 数据库开发技术 作者:kanadeblisst 时间:2019-05-26 20:56:45 0 删除 编辑



numpy:数据分析和机器学习的底层库,完全由C语言实现,用于高效的操作数据。而且是开源的,经过了很多大牛的完善。


numpy.ndarray(numpy数组):由实际数据和元数据组成,实际数据必须是数据类型相同的数据集,元数据则是存储数据的维度和长度。

例如:a = [[2 3] [4 5] [6 7]] 的实际数据是2 3 4 5 6 7,元数据(a.shape)是(3,2),不加逗号是为了区分python列表与numpy数组。


0.创建数组

numpy.arange(起始,终止,步长)  #生成一维数组numpy.array(一般为列表或数组,dtype=对数据类型的描述) #根据列表或数组生成新数组,dtype可以省略

1.numpy内部基本数据类型

  • 布尔型:bool_     

  • 有符号整数:int8(-128~127)/int16/int32/int64

  • 无符号整数:unint8(0-255)/uint16/uint32/uint64

  • 浮点型:float16/float32/float64

  • 复数型:complex64/complex128

  • 字符串:str_ , 每个字符用32位(四个字节)Unicode编码表示


2、自定义复合类型

1)类型字符码

  • ?                ---               bool_  

  • b                ---               int8   

  • B                ---               uint8   

  • i1/i2/i4/i8    ---              有符号整型   

  • u1/2/4/8     ---               无符号整型   

  • f2/4/8         ---               浮点   

  • c8/16          ---              复数   

  • U<字符数> ---              字符串   

  • M8              ---              日期时间   

  • O                ---               Python对象


2)类型字符串

由四部分组成:字节序 维度类型 字符码 字节数

字节序:> 大端字节序  < 小端字节序  = 根据硬件自动选择

比如:

a = numpy.array(['abcdef'], dtype='6U1')# [['a' 'b' 'c' 'd' 'e' 'f']]

更多示例:https://gitee.com/kanadeblisst/CSDN/blob/master/dtype.py

疑问:能不能将['abcdef']解读成['ab' 'cd' 'ef']


3、切片

数组[起始:终止:步长,起始:终止:步长,...]

除了有多维切片外,基本和Python切片一样

补充: a[0][1][2] 同a[0,1,2]

示例:https://gitee.com/kanadeblisst/CSDN/blob/master/slice.py


4、变维

1)视图变维

reshape()(重新设置维度)、ravel()(展平,将数组变为一维的)、

transpose((2,1,0))(转置)原数组为(0,1,2),也就是把0,2轴数据对调

视图:返回一个具有新维度的新数组对象,数据还是原数组的数据,当原数组数据变化时,新数组数据也会变化


2)复制变维

flatten(展平,复制数据形成新数组)   

  

3)就地变维

在原数组之上,改变维度

a.shape = 新维度

a.resize(...)

示例 : https://gitee.com/kanadeblisst/CSDN/blob/master/reshape.py


5、np.ndarray的属性

  • dtype                         元素类型    

  • shape                        数组维度

  • T                               转置视图   

  • size                           元素个数

  • ndim                         数组维数   

  • itemsize                   每个元素字节数

  • nbytes                      数组总字节数 

  • real                           实部数组 

  • imag                        虚部数组 如果是整数或浮点数数组,则全为0,字符串数组则全为''

  • flat                           扁平迭代器(展平后的迭代器)

  • tolist()                      数组转列表

a1 = np.append(a, i)  向a中添加i并返回结果给a1


如果代码不好阅读,可以点阅读原文查看我的CSDN博客的文章。



原文作者:Python成长路;如有侵权,请联系管理员删除。

下一篇: numpy教程-中
请登录后发表评论 登录
全部评论

注册时间:2019-05-15

  • 博文量
    117
  • 访问量
    67420