數組進行簡單統計分析
直接排序
(1)sort 函數是最常用的排序方法。 格式: arr.sort();
(2)sort 函數也可以指定一個 axis 參數,使得 sort 函數可以沿着指定軸對數據集進行排序。axis=1 爲沿橫軸排序; axis=0 爲沿縱軸排序;
間接排序
(1)argsort 函數返回值爲重新排序值的下標。 格式: arr.argsort();
(2)lexsort 函數返回值是按照最後一個傳入數據排序的。 格式: np.lexsort((a,b,c));
去重與重複數據
(1)通過 unique 函數可以找出數組中的唯一值並返回已排序的結果。 格式: np.unique ();
(2)tile 函數主要有兩個參數, 參數“A”指定重複的數組, 參數“reps”指定重複的次數。 格式: np.tile(A ,reps);
(3)repeat 函數主要有三個參數,參數“A”是需要重複的數組元素,參數“reps”是重複次數,參數“axis”指定沿着哪個軸進行重複,axis = 0 表示按行進行元素重複;axis =1 表示按列進行元素重複。 格式: np.repeat(A, reps, axis=None);
1.直接排序
(1)一維數組的直接排序
import numpy as np
arr = np.random.randint(1,10,size=10) # 隨機生成10個數的一維數組
print(arr)
# 結果例如 : [3 8 5 8 7 1 4 5 4 3]
arr.sort()
print('排序後: ',arr)
# 結果例如 : [1 3 3 4 4 5 5 7 8 8]
(2)二維數組的直接排序
import numpy as np
# (1)按行排序
arr2 = np.random.randint(1,10,size=[3,3]) # 隨機生成3*3的二維數組
print(arr2)
# 結果例如 :
# [[9 8 4]
# [2 2 1]
# [4 1 8]]
arr2.sort()
print('按行排序後: ',arr2)
# 結果例如 :
# [[4 8 9]
# [1 2 2]
# [1 4 8]]
# (2)按列排序
arr3 = np.random.randint(1,10,size=[3,3]) # 隨機生成3*3的二維數組
print(arr3)
# 結果例如 :
# [[5 6 2]
# [5 3 8]
# [1 3 7]]
arr3.sort(axis = 0) # 按列排序
print('按列排序後: ',arr3)
# 結果例如 :
# [[1 3 2]
# [5 3 7]
# [5 6 8]]
2.間接排序
(1)argsort(函數返回值是重新排序後的下標)
import numpy as np
arr = np.array([2,3,6,8,0,7])
result = arr.argsort()
print(result)
# 結果: [4 0 1 2 5 3]
(2)lexsort(函數返回值是按最後一個傳入的數據排序)
import numpy as np
arr1 = np.array([3,2,6,4,5])
arr2 = np.array([50,30,40,20,10])
arr3 = np.array([400,300,600,100,200])
result = np.lexsort((arr1,arr2,arr3)) # 按最後一個傳入的數據排序,最後一個是arr3
print(result)
# 結果: [3 4 1 0 2]
3.去重與重複數據
(1)unique() 去重數據
import numpy as np
names = np.array(['小明','蘑菇','小旭','小明','小旭'])
print(names)
# 結果: ['小明' '蘑菇' '小旭' '小明' '小旭']
arr = np.unique(names)
print('去重後的數組爲: ',arr)
# 結果: ['小旭' '小明' '蘑菇']
(2)title(): 針對整個數組的重複,不針對單獨元素的重複;
格式: np.tile(數組,重複次數);
import numpy as np
names = np.array(['小明','蘑菇','小旭','小明'])
arr2 = np.tile(names,3)
print('重複後的數組爲: ',arr2)
# 結果: ['小明' '蘑菇' '小旭' '小明' '小明' '蘑菇' '小旭' '小明' '小明' '蘑菇' '小旭' '小明']
(3)repeat(): 主要針對元素重複;
格式: np.repeat(數組,重複次數,重複格式) 或 name.repeat(重複次數,重複格式) ;
注意: axis = 0按行重複; axis = 1按列重複;
(3.1)按行重複
import numpy as np
name = np.arange(1,10).reshape((3,3))
print(name)
# 結果:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
arr = np.repeat(name,2,axis = 0) # 按行重複
# arr = name.repeat(2,axis = 0) # 2個參數的寫法,效果如上行代碼
print(arr)
# 結果:
# [[1 2 3]
# [1 2 3]
# [4 5 6]
# [4 5 6]
# [7 8 9]
# [7 8 9]]
(3.2)按列重複
import numpy as np
name = np.arange(1,10).reshape((3,3))
print(name)
# 結果:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
# arr = np.repeat(name,2,axis = 1) # 按列重複
arr = name.repeat(2,axis = 1) # 2個參數的寫法,效果如上行代碼
print(arr)
# 結果:
# [[1 1 2 2 3 3]
# [4 4 5 5 6 6]
# [7 7 8 8 9 9]]