- 列表的常用操作
- 列表遍历
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]])