快学numpy04

来源:互联网 发布:javascript dom和框架 编辑:程序博客网 时间:2024/06/06 01:34

博客地址:http://www.fanlegefan.com

文章地址:http://www.fanlegefan.com/archives/quicknumpy04/


ravel扁平化

import numpy as npa = np.arange(6).reshape(2,3)print aprint "数组扁平化,拉平数组:",a.ravel() [[0 1 2] [3 4 5]]数组扁平化,拉平数组: [0 1 2 3 4 5]

concatenate叠加数组

a = np.arange(6).reshape(2,3)b = np.arange(12).reshape(4,3)print aprint bprint "行方向叠加数组:",np.concatenate([a,b],axis=0)print "----------------------------------------------------------------------------------"b = np.random.randn(6).reshape(2,3)print "列方向叠加数组:",np.concatenate([a,b],axis=1)[[0 1 2] [3 4 5]][[ 0  1  2] [ 3  4  5] [ 6  7  8] [ 9 10 11]]行方向叠加数组: [[ 0  1  2] [ 3  4  5] [ 0  1  2] [ 3  4  5] [ 6  7  8] [ 9 10 11]]----------------------------------------------------------------------------------列方向叠加数组: [[ 0.          1.          2.         -0.66205508  0.09851286  0.67491481] [ 3.          4.          5.         -1.07413188  1.47991876 -0.25678795]]In [ ]:

堆叠辅助,r_用于按行堆叠,c_用于按列堆叠

arr = np.arange(6)arr1 = arr.reshape((3, 2))arr2 = np.random.randn(3, 2)print(arr1)print(arr2)[[0 1] [2 3] [4 5]][[-0.60392123 -0.1769936 ] [ 0.46523138  0.71963034] [-0.51733042  1.50108329]]print(np.r_[arr1, arr2])print()[[ 0.          1.        ] [ 2.          3.        ] [ 4.          5.        ] [-0.60392123 -0.1769936 ] [ 0.46523138  0.71963034] [-0.51733042  1.50108329]]print(np.c_[np.r_[arr1, arr2], arr])print()[[ 0.          1.          0.        ] [ 2.          3.          1.        ] [ 4.          5.          2.        ] [-0.60392123 -0.1769936   3.        ] [ 0.46523138  0.71963034  4.        ] [-0.51733042  1.50108329  5.        ]]

split分割数组

a = np.arange(30).reshape(5,6)print aprint "----------------------------------------------------------------------------------"first,second,third = np.split(a,[1,3],axis=0)print "按行切分数组"print firstprint "----------------------------------------------------------------------------------"print secondprint "----------------------------------------------------------------------------------"print thirdprint "----------------------------------------------------------------------------------"first,second,third = np.split(a,[1,3],axis=1)print "按列切分数组"print firstprint "----------------------------------------------------------------------------------"print secondprint "----------------------------------------------------------------------------------"print thirdprint "----------------------------------------------------------------------------------"[[ 0  1  2  3  4  5] [ 6  7  8  9 10 11] [12 13 14 15 16 17] [18 19 20 21 22 23] [24 25 26 27 28 29]]----------------------------------------------------------------------------------按行切分数组[[0 1 2 3 4 5]]----------------------------------------------------------------------------------[[ 6  7  8  9 10 11] [12 13 14 15 16 17]]----------------------------------------------------------------------------------[[18 19 20 21 22 23] [24 25 26 27 28 29]]----------------------------------------------------------------------------------按列切分数组[[ 0] [ 6] [12] [18] [24]]----------------------------------------------------------------------------------[[ 1  2] [ 7  8] [13 14] [19 20] [25 26]]----------------------------------------------------------------------------------[[ 3  4  5] [ 9 10 11] [15 16 17] [21 22 23] [27 28 29]]----------------------------------------------------------------------------------

repeat重复数组

a = np.arange(3)print a.repeat(3)print "指定元素index进行repeat:",a.repeat([2,3,2])a = np.arange(6).reshape(3,2)print "按行repeat:",a.repeat(2,axis=0)print "按列repeat:",a.repeat(2,axis=1)[0 0 0 1 1 1 2 2 2]指定元素index进行repeat: [0 0 1 1 1 2 2]按行repeat: [[0 1] [0 1] [2 3] [2 3] [4 5] [4 5]]按列repeat: [[0 0 1 1] [2 2 3 3] [4 4 5 5]]

tile整行整列的复制,俗称贴瓷砖

a = np.arange(4).reshape(2,2)print np.tile(a,2)print "----------------------------------------------------------------------------------"print np.tile(a,(2,3))[[0 1 0 1] [2 3 2 3]]----------------------------------------------------------------------------------[[0 1 0 1 0 1] [2 3 2 3 2 3] [0 1 0 1 0 1] [2 3 2 3 2 3]]

读写文件

user =  np.loadtxt('user.csv', delimiter=',')print "读入文件:",userprint "写入文件random"a = np.random.randn(30).reshape(5,6)np.save('random',a)a = np.load("random.npy")print "加载文件random:",aa = np.arange(20).reshape(4,5)b = np.arange(6).reshape(2,3)c = np.arange(10).reshape(2,5)print "写入多个文件"np.savez("array_archive.npz",a1 = a,a2 = b,a3 = c)print "加载多个文件"arrs = np.load("array_archive.npz")print "提取文件a:",arrs['a1']读入文件: [[  1.  20.   2.] [  2.  30.   1.] [  3.  18.   2.] [  4.  20.   2.]]写入文件random加载文件random: [[ 0.48373067 -1.44908936 -0.30609751 -1.52343586 -1.62371042  1.06945452] [-0.37706947  0.61874081 -1.15545717  0.68789212  0.4541404   1.06083362] [ 0.42925037  1.06139537 -0.18608025 -0.06819906  0.17113157  1.70382921] [-1.11490434  0.46147142 -1.35576498 -1.88094052 -0.17532947 -1.00355936] [ 0.65560788 -1.15335741 -0.19709539 -0.67795612 -0.1313468   0.93618876]]写入多个文件加载多个文件提取文件a: [[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14] [15 16 17 18 19]]In [ ]: