*.数据的维度:
相同地位的数据放到一起,感觉用张量理解就好
*.列表和数组的区别:
列表相当于集合,成员的类型可以不同,编程理解
*.高维数据:仅仅利用数据的最基本的二元关系展示数据间的复杂关系.(用键值对表示,比如xml)
*.数据维度的python表示:
一维数据:列表(有序)和集合类型(无序)
二维及高维数据:列表
高维数据:字典类型及数据表达格式(JSON,XML,YAML)
*.numpy功能:
1.提供了强大的N维数组对象ndarray
2.广播功能函数
3.整合c/c++/fortran代码的工具
4.线性代数,傅里叶变换,随机数生成等工具
*.为什么要有ndarray,
编程上:可以去掉元素间运算所需的循环,使一维向量更像单个数据
性能上:设置专门的数组对象,经过优化,可以提升这类运用的速度(numpy的底层是由c实现的)同时观察:一个维度的所有数据的类型往往相同,所以用数组,
*.ndarray是一个多维数据对象,由两部分构成:
1.实际的数据
2.描述这些数据的元组(数据维度,数据类型等)
数据类型一般相同,数据下标从零开始.
有两个基本概念:
轴axis,保存数据的维度,数据存储在秩上
秩rank,轴的数量,数组类型由多少个维度
*.ndarray对象的属性:
.ndim:秩,及轴的数量或者维度的数量
.shape,对象的属性,对于巨蟹和,n行m列
.size,对象中元素的个数,相当于shape中的n*m值
.dtype对象的元素类型
.itemsize对象中每个元素的大小,以字节为单位
*.ndarray的元素类型;
*.为什么ndarray支持那么多类型:科学计算涉及数据较多,对储存和性能有较高要求,对元素进行精细定义,有助于numpy何理使用储存空间并优化性能,也有助于程序员对程序的规模有何理评估
*.事实上ndarray也可由非同质元素构成,它会把不同类型的元素都看成对象类型,
在大规模情况下,避免使用非同质元素,它没有发挥出numpy的优势
*.如何创建ndarry数组?
*.从python已有的数据类型
x=np.array(list/tuple,dtype=np.float32)
如果不给dtype参数,它会根据你的数据选择合适的数据类型
*使用numpy中的函数,arange,ones,zeros
还有从字节流中创建ndarry数组
读取文件中的相关格式
*.维度变换
*.元素类型变换
*.ndarray向列表的转换
ls=a.tolist()
*.数组的索引和切片:
索引:获取数组中特定位置元素的过程
切片:获取元素中子集的过程
*.一维数组,和python中的列表相似:
[开始编号:终止编号(包含,左闭右开):步长]
*.多维数组:
索引:[第一个维度编号:第二个维度编号:第三个维度编号:...:最后一个维度中的编号]
切片[第一个维度的索引范围,第二个维度的索引范围,第三个维度的索引范围,...,最后一个维度的索引范围],这是一个很复杂的事情
*.ndarray运算:
1.数组与标量的运算,作用于数组的每一个元素
2.numpy一元函数
几乎所有的一元函数都是新生成数组
3.ndarray二元函数