Python数据分析与展示-1

目录

数据的维度

Numpy的数组对象:ndarray

ndarray数组的创建和变换

ndarray数组的操作

 ndarray数组的运算

 

 


 

数据的维度

一维数据:

一维数据由对等关系的有序或无序数据构成,采用线性方式组织。对应列表、数组和集合等概念。

列表和数组:一组数据的有序结构。

区别:

列表:数据类型可以不同

数组:数据类型相同

二维数据

二维数据由多个一维数据构成,是一维数据的组合形式。

表格是典型的二维数据。其中,表头是二维数据的一部分

多维数据

多维数据由一维或二维数据在新维度上扩展形成。例如增加时间维度的表格

高维数据

高维数据仅利用最基本的二元关系展示数据间的复杂结构。利用键值对将数据组织起来的形成的数据关系。

数据维度的Python表示

一维数据:列表(有序)和集合(无序)类型

二维数据:列表类型

多维数据:列表类型

高维数据:字典类型或数据表示格式(JSON、XML、YAML)

Numpy的数组对象:ndarray

Numpy:开源的Python科学计算基础库,提供了一个强大的N维数组对象ndarray,广播功能函数,整合C/C++/Fortran代码的工具,线性代数、傅里叶变换、随机数生成等功能。

Numpy引用: 

import numpy as np

N维数组对象:ndarray :ndarray是一个多维数组对象,由两部分构成:实际的数据、描述这些数据的元数据(数据维度、数据类型等)。ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始。

如何使用ndarray:使用np.array()生成一个ndarray数组(ndarray在程序中的别名是:array),np.array()输出成 [] 形式,元素由空格分割。

In [1]: import numpy as np

In [2]: a = np.array([[0,1,2,3,4],
   ...:             [9,8,7,6,5]])
   ...:             

In [3]: a
Out[3]: 
array([[0, 1, 2, 3, 4],
       [9, 8, 7, 6, 5]])

In [4]: print(a)
    [[0 1 2 3 4]
    [9 8 7 6 5]]

ndarray对象的属性: 

ndarray数组的创建和变换

ndarray数组的创建方法: 

(1)从Pyhton中的列表、元祖等类型创建ndarray数组。

In [15]: x = np.array([0,1,2,3])  # 从列表类型创建

In [16]: print(x)
[0 1 2 3]

In [17]: x = np.array((4,5,6,7))  # 从元组类型创建

In [18]: print(x) 
[4 5 6 7]

In [19]: x = np.array([[1,2],[9,8],(0.1, 0.2)])  # 从列表和元组混合类型创建

In [20]: print(x)
[[ 1.   2. ]
 [ 9.   8. ]
 [ 0.1  0.2]]

(2) 使用Numpy中函数创建ndarray数组,如:arange,ones,zeros等。

(3)从字节流(raw bytes)中创建ndarray数组;从文件中读取特定格式,创建ndarray数组。

ndarray数组的变换 :对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换。

(1)维度变换:

In [34]: a = np.ones((2,3,4), dtype=np.int32)

In [35]: a.reshape((3,8))
Out[35]: 
array([[1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1]])

In [36]: a
Out[36]: 
array([[[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]],

       [[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]])

In [37]: a.resize((3,8))

In [38]: a
Out[38]: 
array([[1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1]])

In [39]: a = np.ones((2,3,4), dtype=np.int32)

In [40]: a.flatten()
Out[40]: 
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

In [41]: a
Out[41]: 
array([[[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]],

       [[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]])

In [42]: b = a.flatten()

In [43]: b
Out[43]: 
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

(2)元素类型变换: 数组向列表的转换

ls = a.tolist()

ndarray数组的操作

索引:获取数组中特定位置元素的过程。

In [54]: a = np.arange(24).reshape((2,3,4))

In [55]: a
Out[55]: 
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

In [56]: a[1,2,3]         # 每个维度一个索引值,逗号分割
Out[56]: 23

In [57]: a[0,1,2]
Out[57]: 6

In [58]: a[-1,-2,-3] 
Out[58]: 17

切片: 获取数组元素子集的过程

In [59]: a[: , 1, -3]         # 选取一个维度用
Out[59]: array([ 5, 17])

In [60]: a[: , 1:3, :]         # 每个维度切片方法与一维数组相同
Out[60]: 
array([[[ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]]])

In [61]: a[: , :, ::2]         # 每个维度可以使用步长跳跃切片
Out[61]: 
array([[[ 0,  2],
        [ 4,  6],
        [ 8, 10]],

       [[12, 14],
        [16, 18],
        [20, 22]]])

 ndarray数组的运算

一元函数

 

二元函数

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值