目录
6.案例(用numpy创建一个二维或多维正态分布随机数,保留符合[0, 1)的数,然后求平均值)
1.数据的维度
一维数据:
一维数据由对等关系的有序或无序数据构成,采用线性方式组织。对应列表、数组和集合等概念。
列表和数组:一组数据的有序结构。
区别:
列表:数据类型可以不同
数组:数据类型相同
二维数据:
二维数据由多个一维数据构成,是一维数据的组合形式。
表格是典型的二维数据。其中,表头是二维数据的一部分
多维数据:
多维数据由一维或二维数据在新维度上扩展形成。例如增加时间维度的表格
高维数据:
高维数据仅利用最基本的二元关系展示数据间的复杂结构。利用键值对将数据组织起来的形成的数据关系。
数据维度的Python表示
一维数据:列表(有序)和集合(无序)类型
二维数据:列表类型
多维数据:列表类型
高维数据:字典类型或数据表示格式(JSON、XML、YAML)
2.numpy的数组对象:ndarray
NumPy是一个开源的Python科学计算基础库。NumPy提供了一个强大的N维数组对象ndarray,广播功能函数,整合C/C++/Fortran代码的工具,线性代数、傅里叶变换、随机数生成等功能。
- np.array()生成一个ndarray数组
- ndarray在程序中的别名是:array
引用格式:
import numpy as np
3.ndarray数组的创建和变换
(1)从Pyhton中的列表、元祖等类型创建ndarray数组
x = np.array(list/tuple)
x = np.array(list/tuple,dtype=np.float32)
当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型
(2)使用Numpy中函数创建ndarray数组,如:arange,ones,zeros等
reshape和resize:
reshape不修改原始数据
resize修改原始数据
4.ndarray数组的操作
ndarray数组的类型变换:new_a = a.astype(new_type)
如:a = np.ones((2,3,4), dtype=np.int)
ndarray数组向列表的转换
ls = a.tolist()
索引:获取数组中特定位置元素的过程
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]]])
5.ndarray数组的运算
6.案例(用numpy创建一个二维或多维正态分布随机数,保留符合[0, 1)的数,然后求平均值)
#用numpy创建一个二维或多维正态分布随机数,保留符合[0, 1)的数,然后求平均值
import numpy as np #导入numpy库,别名np
a=np.random.randn(3,3) #创建一个三行三列的正态分布随机数
b=a[(a>=0)&(a<1)] #取出>=0并且<1的随机数,并赋值给b
print("a",a)
print("b",b)
print(b.mean()) #取平均值
输出结果:
学习视频:
Python数据分析与展示 - 北京理工大学(最全)_哔哩哔哩_bilibili