Python快速入手

  • 列表的常用操作
    • 列表遍歷
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]])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章