Python快速入手 ゝ一世哀愁。 2022-08-08 14:54 215阅读 0赞 * 列表的常用操作 * 列表遍历 In [18]: for x in list: ....: print(x) ....: 5 4 3 2 In [19]: for x in range(0,len(list)): ....: print(list[x]) ....: 5 4 3 2 * 列表排序 In [13]: list=[2,4,5,3] In [14]: list.sort() In [15]: list Out[15]: [2, 3, 4, 5] //从大到小 In [16]: list.sort(reverse=True) In [17]: list Out[17]: [5, 4, 3, 2] * 字典的常用操作 * 字典遍历 In [9]: x={1:2,3:4,4:3,2:1,0:0} In [10]: for i in x: ....: print(i) 0 1 2 3 4 In [11]: for i,j in x.items(): ....: print(i,j) ....: 0 0 1 2 2 1 3 4 4 3 In [12]: for i in x.keys(): ....: print(i) ....: 0 1 2 3 4 In [13]: * 排序 In [1]: import operator In [2]: x={1:2,3:4,4:3,2:1,0:0} //按value排序(默认从小到大) In [3]: sortx=sorted(x.items(),key=operator.itemgetter(1)) In [4]: sortx Out[4]: [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)] //按key排序 In [5]: sortx=sorted(x.items(),key=operator.itemgetter(0)) In [6]: sortx Out[6]: [(0, 0), (1, 2), (2, 1), (3, 4), (4, 3)] //从大到小排序 In [7]: sortx=sorted(x.items(),key=operator.itemgetter(0),reverse=True) In [8]: sortx Out[8]: [(4, 3), (3, 4), (2, 1), (1, 2), (0, 0)] * 文件的读写 //读文件 read=open("file","r",encoding="utf-8") for line in read.readlines(): print(line) //写文件 write=open("file","a",encoding="utf-8") write.write("something") 数组的重塑 **reshape** In [2]: arr=np.arange(8) In [3]: arr Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7]) In [4]: arr.reshape((4,2)) Out[4]: array([[0, 1], [2, 3], [4, 5], [6, 7]]) In [5]: arr.reshape((2,4)) Out[5]: array([[0, 1, 2, 3], [4, 5, 6, 7]]) In [6]: arr=np.arange(15) In [7]: arr.reshape((5,-1))//-1表示该维度的大小由数据本身推断而来 Out[7]: array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14]]) In [8]: other_arr=np.ones((3,5)) In [9]: other_arr.shape//通过shape来得到行、列数 Out[9]: (3, 5) **raveling** In [10]: arr=np.arange(15).reshape((5,3)) In [11]: arr Out[11]: array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14]]) In [12]: arr.ravel() Out[12]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) In [13]: arr.ravel("f")//f表示按列展开 Out[13]: array([ 0, 3, 6, 9, 12, 1, 4, 7, 10, 13, 2, 5, 8, 11, 14]) In [14]: arr.ravel("c")//c表示按列展开 Out[14]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) In [15]: arr.ravel("a")//a表示按行展开也就是默认的方式 Out[15]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) **数组的合并和拆分** In [16]: arr1=np.array([[1,2,3],[4,5,6]]) In [17]: arr2=np.array([[7,8,9],[10,11,12]]) In [18]: np.concatenate([arr1,arr2],axis=0) Out[18]: array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) In [19]: np.concatenate([arr1,arr2],axis=1) Out[19]: array([[ 1, 2, 3, 7, 8, 9], [ 4, 5, 6, 10, 11, 12]]) /简单方式/ In [20]: np.vstack((arr1,arr2)) Out[20]: array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) In [21]: np.hstack((arr1,arr2)) Out[21]: array([[ 1, 2, 3, 7, 8, 9], [ 4, 5, 6, 10, 11, 12]]) In [29]: arr=randn(8,2) In [30]: arr Out[30]: array([[-0.61557794, 0.6589772 ], [-1.53940669, 0.72233791], [ 0.65838257, 0.16509701], [-0.85338451, -0.01873622], [ 2.63647146, -0.90049343], [ 1.00616154, 0.26211412], [ 0.08777359, -0.23117177], [ 0.19183086, 1.49532713]]) In [32]: a,b,c,d=np.split(arr,[1,4,5])//按第一行,四行,五行,分开 In [33]: a Out[33]: array([[-0.61557794, 0.6589772 ]]) In [34]: b Out[34]: array([[-1.53940669, 0.72233791], [ 0.65838257, 0.16509701], [-0.85338451, -0.01873622]]) In [35]: c Out[35]: array([[ 2.63647146, -0.90049343]]) In [36]: d Out[36]: array([[ 1.00616154, 0.26211412], [ 0.08777359, -0.23117177], [ 0.19183086, 1.49532713]]) 好用的工具:np.where() In [4]: arr=numpy.random.randn(4,4) In [5]: arr Out[5]: array([[-1.6015138 , 0.02734431, 1.23806435, 1.14439669], [-0.52331802, -0.04224807, -0.00374231, 0.56596793], [ 0.12013888, 0.46383992, -1.41978895, 0.76854959], [-3.71788919, 0.11227569, -0.37714645, -1.25479449]]) In [6]: numpy.where(arr>0,1,-1)//大于零为1,小于零为-1 Out[6]: array([[-1, 1, 1, 1], [-1, -1, -1, 1], [ 1, 1, -1, 1], [-1, 1, -1, -1]]) In [7]: numpy.where(arr>0,1,arr)//arr表示结果不变 Out[7]: array([[-1.6015138 , 1. , 1. , 1. ], [-0.52331802, -0.04224807, -0.00374231, 1. ], [ 1. , 1. , -1.41978895, 1. ], [-3.71788919, 1. , -0.37714645, -1.25479449]])
还没有评论,来说两句吧...