2.2.3.6 合并数组
使用numpy下的vstack(垂直方向)和hstack(水平方向)函数:
>>> a = np.ones((2,2)) >>> b = np.eye(2) >>> print np.vstack((a,b)) [[ 1. 1.] [ 1. 1.] [ 1. 0.] [ 0. 1.]] >>> print np.hstack((a,b)) [[ 1. 1. 1. 0.] [ 1. 1. 0. 1.]] |
看一下这两个函数有没有涉及到浅拷贝这种问题:
>>> c = np.hstack((a,b)) >>> print c [[ 1. 1. 1. 0.] [ 1. 1. 0. 1.]] >>> a[1,1] = 5 >>> b[1,1] = 5 >>> print c [[ 1. 1. 1. 0.] [ 1. 1. 0. 1.]] |
通过上面可以知道,这里进行是深拷贝,而不是引用指向同一位置的浅拷贝。
2.2.3.7 深度拷贝
数组对象自带了浅拷贝和深拷贝的方法,但是一般用深拷贝多一些:
>>> a = np.ones((2,2)) >>> b = a >>> b is a True >>> c = a.copy() #深拷贝 >>> c is a False |
2.2.3.8 矩阵转置运算
>>> a = np.array([[1,0],[2,3]]) >>> print a [[1 0] [2 3]] >>> print a.transpose() [[1 2] [0 3]] |