python
type() len()
?
向量化编程-广播机制
向量化-一次处理一个数字转换为一次处理一批数据,尽可能的少使用for循环,使用arrray为基本元素进行操作
使用numpy的函数或者操作符进行运算
广播机制: ndim shape 解决了限制条件下不同ndmi或shape的ndarray之间的运算
the Numpy's features which are the basic of much of its power: vectorization and broadcasting
数据和元数据-numerical python
the raw array data (from now on, referred to as the data buffer),
and the information about the raw array data-meta data
属性
实数虚数:real imag -->(complex 复数元素)
关于数据 data dtype ndim shape size
关于内存 flags itemsize nbytes
扩展: flat strides ctypes base
ndarray 的赋值Assignment、视图、拷贝和广播--shape和数据
副本(Shallow Copy)和视图(view)-
副本--The copy SHOULD NOT be affected by the changes made to the original array.
the difference between these two terms
and to know which operations return copies and which return views.
a view without copying data around.-赋值还是视图,对其中一个数组的改变都会影响另外一个
The view SHOULD be affected by the changes made to the original array.
视图方法可以实现不同的数组对象共享同样的数据-视图相对于原来的数组来说,除了数据是共享的,其他都是独立的
当 my_arr2 的形状发生改变时,my_arr1 的形状并不会发生改变。 --shape
当 my_arr2 的数据发生改变时,my_arr1 会发生同样的改变。
order
“c_index”导致跟踪C顺序索引。 “f_index”导致跟踪Fortran-order索引
elementwise
数学运算
np.dot np.matmul np.multipy np.inner np.outer np.cross
数学
点乘,也叫做向量的内积、数量积。对两个向量执行点乘运算,就是对着两个向量对应位置一一相乘之后求和的操作,点乘的结果是一个标量
表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影。
两个向量的叉乘,又叫向量积、外积、叉积,叉乘的运算结果是一个向量而不是一个标量。
并且两个向量的叉积与这两个向量组成的坐标平面垂直。
三维几何中,向量 a aa 和向量 b bb 的叉乘结果是一个向量,更为熟知的叫法是【法向量】,该向量垂直于a aa 和 b bb 向量构成的平面
二维空间中,叉乘还有另外一个几何意义就是:a × b = a×b=a×b= 由向量 a aa 和向量 b bb 构成的平行四边形的面积
数据
具备一定程度的统计学和线性代数知识
具备对数据记性加工个后处理的能力
具备运用复杂算法的设计和实现能力
--掌握计算公式,实现代码,帮助理解算法的细节-二次加工处理,定制加工和处理
数据类型
01.numpy 是Python的数值 numerical 计算扩展,专门用来处理矩阵。数据结构是n维的数组对象,叫做ndarray
ndarray数组需要注意的是,它内部的元素必须为相同类型,比如数值或者字符串
包数据类型: 标量类型、复合类型
标量类型
浮点型有:float16、float32、float64、float128
整型有:int8、int16、int32、int64
字符串类型 字节串 复数类型
复合类型
自定义数据类型
相同属性相同大小
02.pandas.Series( data, index, dtype, name, copy)
Series 由一组数据和数据标签组成。数据标签有索引的作用。
data:一组数据(ndarray 类型) 数据,索引,数据类型
03.pandas.DataFrame( data, index, columns, dtype, copy)
DataFrame 是一个表格型的数据结构,data:一组数据(ndarray、series, map, lists, dict 等类型)。
它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。
DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)
numpy 补充概念
坐标轴 axis
维度和形状 shape axis ndim
索引--单个元素 切片--多个元素[start:end:step]不包括终点的值
当start是0时,可以省略;当end是列表的长度时,可以省略.
trans_matrix[:3,:3]
trans_matrix[0:3,3]
元组中只有一个元素时,元素后面需要加逗号(1,)
元组通过圆括号中用逗号分割的项目定义
()圆括号 --01.作为函数的一种结构,02.作为元祖的数据类型,eg: np.zero((N,4))
[]方括号 --01.作为索引的表示 02.作为列表的数据类型
索引 循环 切片 遍历 index loop slice traversal iterate recursion
操作
import numpy as np
##数据
np.array()
zero_line = np.asarray([0, 0, 0, 1])
###形状
np.eye(4,dtype=np.float32)
np.zero((N,4))
np.ones()
##数组形状修改
reshape
##转置 数组.T 或者使用 np.tanspose
###输出
matrix.reshape(16).tolist()
###数组的拼接函数
计算机
内存
order 数据排列方式: row_major 行主序 C语言 C_contiguous
column_major 列主序 Fortran和matlab语言 F_contiguous
column_major 列主序 Fortran和matlab语言 F_contiguous
广播的运行机制
不同大小的时候的调整机制
索引 循环 切片 遍历 迭代 递归 广播 index loop slice traversal iterate recursion broadcast
数组的维度
shape axis ndim
len(shape) == ndim
shape[0] axis0 个数
shape[1] axis1 维度元素个数
(-1,)