数据的维度
从一个数据到一组数据:一个数据表达一个含义,一组数据表达一个或多个含义
维度:一组数据的组织形式
一维数据:由对等关系的有序或无序数据构成。采用线性方式组织
二维数据:由多个一维数据组成,是一维数据的组合形式
多维数据:由一维或二维数据在新维度上扩展形成
高维数据:仅利用最基本的二元关系展示数据间的复杂结构,就是由键值对将数据组织起来形成的一种数据方式
NumPy
NumPy是一个开源的Python科学计算基础库,包含:
一个强大的N维数组对象ndarray;
广播功能函数;
整合C/C++/Fortran代码的工具;
线性代数、傅里叶变换、随机数生成等功能;
NumPy是SciPy、Pandas等数据处理或科学计算库的基础
NumPy的引用
import numpy as np(引入模块的别名)尽管别名可以省略或更改,建议使用上述约定的别名
N维数组对象ndarray
ndarray是一个多维数组对象,由两部分构成:实际的数据;描述这些数据的元数据(数据维度、数据类型等);
ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始
ndarray对象的属性
ndarray实例
In [22]:a=np.array([[0, 1, 2, 3, 4],
[9, 8, 7, 6, 5]])
In [23]: a.ndim
Out [23]:2
In [24]: a.shape
Out [24]: (2, 5)
In [25]: a.size
Out [25]: 10
In [26]: a.dtype
Out [26]: dtype('int32')
In [27]: a. itemsize
Out[27]:4
ndarray数组的创建方法
从Python中的列表、元组等类型创建ndarray数组
使用NumPy中函数创建ndarray数组,如: arange, ones, zeros等
从字节流(raw bytes )中创建ndarray数组
从文件中读取特定格式,创建ndarray数组
ndarray数组的创建方法
(1)从Python中的列表、元组等类型创建ndarray数组
X = np.array(list/tuple)
X = np.array (list/tuple, dtype=np.float32)
当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型
数组与标量之间的运算:作用于数组的每一个元素
#NumPy一元函数实例
In [176]: a = np.arange (24) .reshape((2,3,4))
In [177]: np. square(a)
Out [177]:
array([[[ 0, 1, 4, 9],
[ 16, 25, 36, 49],
[ 64, 81, 100, 121]],
#注意数组是否被真实改变
[[144, 169, 196, 225],
[256, 289, 324, 361],
[400, 441, 484, 529]]], dtype=int32)
In [178]: a = np.sqrt(a)
In [179]: a
Out[179]:
array([[[ e.|, 1., 1.41421356, 1.73205081],
[2.23606798, 2.44948974, 2.64575131],
[ 2.82842712, 3.[2.|, 3.16227766, 3.31662479]],
[[ 3.46410162, 3.60555128, 3.74165739, 3.87298335],
[4. , 4.12310563, 4.24264069, 4.35889894],
[ 4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
In [180]: np.modf(a)
Out [180]:
(array([[[ e.Θ.,0.41421356, 0.73205081],
[0.0.23606798, 0.44948974, 0.64575131],
[ 0.16227766, 0.31662479]],
[[ 0.46410162, 0.60555128, 0.74165739, 0.87298335],
[Θ.[0.82842712, 0.0.12310563, 0.24264069, 0.35889894],
[0.47213595, 0.58257569, 0.69041576, 0.79583152]]]),
array([[[ 0., 1., 1., 1.],[2., 2., 2., 2.],[2., 3., 3., 3.]],
[[ 3.,3.,3., 3.],4.,4.,4.,4.],4., 4.,4., 4.]]]))
#NumPy二元函数实例
In [203]: a = np.arange(24). reshape((2,3,4))
In [204]: b = np.sqrt(a)
In [205]: a
Out[205]:
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 [206]: b
Out[206]:
array([[[ 0.1, 1.41421356, 1.73205081],
[2. , 2.23606798, 2.44948974, 2.64575131],
[ 2.82842712, 3., 1., 3.16227766, 3.31662479]],
[[ 3.46410162, 3.60555128, 3.74165739, 3.87298335],
[4.4.12310563, 4.24264069, 4.35889894],
[ 4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
In [207]: np. maximum(a, b)
Out[207]:
array([[[| 0.,1., 2., 3.],[5., 6., 7.],[8.,9., 10., 11.]],
#运算结果为浮点数
[[ 12., 13., 14., 15.],
[ 16., 17., 18., 19.],
[ 20., 21., 22., 23.]]])
In [208]: a> bOut[208]:
array([[[False, False, True, True],
[True, True, True, True],
[True, True, True, True]],
[[ True, True, True, True],
[True, True, True, True],
[True, True, True, True]]], dtype=bool)