1. 矩阵维度变换
1.1 numpy.reshape(a, newshape, order=’C’)
reshape() 函数经常用做一维数组维度的变化,也就是将一维数组变化成为指定维度的矩阵。order 是指不同的索引规则,一般默认 C,按照行进行运算。
示例:
1 | print np.reshape(np.arange(10), (2, 5)) |
1.2 numpy.ravel(a, order=’C’)
ravel 函数是将矩阵数据进行降维操作,例如,将二维的数据降成一维的
示例:
1 | data = np.reshape(np.arange(10), (2, 5)) |
1.3 flatten([order])
该成员函数也是用于降维使用的,起作用与 ravel 函数类似
示例:
1 | data = np.reshape(np.arange(10), (2, 5)) |
与 ravel 函数的区别:ravel 是原始数据的视图,对其进行修改之后原始数据也将会被修改;而 flatten 函数则返回原始数据的拷贝,对其进行修改并不会对原始数据产生影响。
示例:
1.4 ravel 函数
1 | data = np.reshape(np.arange(10), (2, 5)) |
1.5 flatten 函数
1 | data = np.reshape(np.arange(10), (2, 5)) |
2.矩阵组合
这里使用两个测试用矩阵:
1 | a = np.array([[1, 2], [3, 4]]) |
2.1 水平组合
示例:
1 | print np.hstack((a, b)) |
2.2 垂直组合
示例:
1 | print np.vstack((a, b)) |
2.3 深度组合
示例:
1 | print np.dstack((a, b)) |
这里使用如下数据进行测试:
1 | a = np.array([[1, 2, 3], |
3.1 水平分割
在理解了 2.1 节中的水平组合之后,其逆过程就很容易理解了。
示例:将示例矩阵分为等分成为三份
1 | print np.hsplit(a, 3) |
3.2 垂直分割
其过程类似上面的过程
示例:
1 | print np.vsplit(a, 3) |
3.3 深度分割
示例:注意,深度分割只对三维以上矩阵有效
1 | print np.dsplit(np.arange(27).reshape((3, 3, 3)), 3) |
这里测试用的数据还是 3 节中的数据
4.1 矩阵维度
1 | print np.shape(a) |
4.2 矩阵数据类型
1 | print a.dtype |
4.3 矩阵元素个数
1 | print a.size |
4.4 矩阵元素占用字节数
1 | print a.itemsize |
4.5 矩阵总占用字节数
1 |
|