Numpy notes
1. Ndarray
1.1. attributes
ndarray.ndim
- 解释:数组轴的个数,在python的世界中,轴的个数被称作秩
ndarray.shape
- 解释:数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性
ndarray.size
- 解释:数组元素的总个数,等于shape属性中元组元素的乘积。
ndarray.dtype
- 解释:一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。另外NumPy提供它自己的数据类型。
ndarray.astype(np.uint8
- ndarray.itemsize
- 解释:数组中每个元素的字节大小。
- 例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8)
- 又如,一个元素类型为complex32的数组item属性为4(=32/8).
- ndarray.data
- 解释:包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组 元素。
https://blog.csdn.net/xiaoxiangzi222/article/details/53084336
1.2. methods
- 取得range
- np.linspace(-3,3,5)
- 最后一个为分为多少段
- Np.arange(-3,3,5)
- 最后一个为隔多少
- np.linspace(-3,3,5)
- 去重
- np.unique(xs, return_counts=True)
- 返回一个val array, cnt array
- np.unique(xs, return_counts=True)
- 去重保留顺序
- _, idx = np.unique(a, return_index=True) print(a[np.sort(idx)])
- 来自 https://stackoverflow.com/questions/15637336/numpy-unique-with-order-preserved
- 合并
- np.column_stack((val, pmf))
- 返回一个合并两个array的shape = [n,2]
- np.vstack((sparse_mx.row,sparse_mx.col)
- np.column_stack((val, pmf))
- 制作对角方阵,对角线为1
- Np.indentity(x)
- 制作对角方针
- Np.diag(list)
- 按照规则筛选
- Np.where(a)[1]
- 扣完的图
- Np.where(a)[0]
- 扣完的index
- Np.where(a)[1]
- 拼接
- np.concatenate((a,b,c), axis = x)
- 重复
- np.tile(x, (shape,shape))
- 例子:np.tile(a,2)
- np.tile(x, (shape,shape))
- 筛选得到索引
- Np.argswhere = index
- 删除
- Np.delete(a, b)
- 重复每个元素
- Np.repeat(a,4)
- 充满某个元素
- array.fill()
- 抽取样本
- np.random.choice(nodes, (trials, 2)
- 解释:nodes一维 -》 抽trialsx2个,shape是后面
- np.random.choice(nodes, (trials, 2)
- 直接抽取多维均匀分布
- np.random.random_sample(size=(n,2))
随机抽一堆 PERmutation / shuffle
- 区别:可以看出在达到 109109 级别以前,两者速度几乎没有差别,但是在 达到 109109 以后两者速度差距明显拉大,shuffle 的用时明显短于 permutation。
- 结论: 所以在 array 很大的时候还是使用 shuffle 速度更快些,但要注意其不返回打乱后的 array,是 inplace 修改。
1.3. transform
- 转为tensor
- tensor(x) from_numpy(x)
- 转为scipy
- coo_matrix(x)
2. Nmatrix
2.1. init
- 通过字符串创建
- a = npmatrix('1 2 7; 3 4 8; 5 6 9')
- 矩阵的换行必须是用分号(;)隔开,内部数据必须为字符串形式(‘ ’),矩
- 矩阵的元素之间必须以空格隔开。
- a = npmatrix('1 2 7; 3 4 8; 5 6 9')
- 通过多维数组创建
- b=np.array([[1,5],[3,2]]) x=np.matrix(b)
- 矩阵中的data可以为数组对象。
- b=np.array([[1,5],[3,2]]) x=np.matrix(b)
2.2. attributes
- matrix.T transpose:返回矩阵的转置矩阵
- matrix.H hermitian (conjugate)
- .transpose:返回复数矩阵的共轭元素矩阵
- matrix.I inverse:返回矩阵的逆矩阵
- matrix.A base array:返回矩阵基于的数组
- https://www.cnblogs.com/sumuncle/p/5760458.html
2.3. methods
https://www.cnblogs.com/sumuncle/p/5760458.html