資料分析(1)

weixin_50176212發表於2020-10-12

資料分析

1.numpy

1.1 陣列

1.1.1 建立陣列

# newlist = [1,2,3]
# print('列表',newlist)
# print(type(newlist))
# arr1 = numpy.array(newlist)
# print('陣列',arr1)
# print(type(arr1))

1.1.2 陣列的組成

1.1.2.1 維度的個數

print('維度的個數',arr1.ndim)

1.1.2.2 維度的大小

print('維度的大小',arr1.shape)

1.1.2.3 資料型別

print('資料型別',arr1.dtype)

1.1.3 陣列的隨機抽樣建立

arr1 = numpy.random.rand(3,4)
注意:
rand如果不指定任何引數,返回的是一個浮點數(小數),指定引數之後,其實指定的就是陣列的大小

arr1 = numpy.random.uniform(size=3)
arr2 = numpy.random.uniform(size=(3,4))
arr3 = numpy.random.uniform(5,10,size=(3,4))
注意:
uniform如果不指定引數,預設的資料區間為0-1,返回的是一個浮點數

arr1 = numpy.random.randint(-1,20,(4,4))
注意:
randint返回的是整數,可以指定負數範圍

1.1.4 陣列的序列建立

arr1 = numpy.array()

numpy.zeros
全為0的陣列

numpy.ones
全為1的陣列

numpy.arange
建立的是一維陣列

arr1.reshape()
對原有陣列進行重組,將一維陣列轉變為多維陣列,但是資料的數量要對應

1.2 索引與切片

1.2.1 一維陣列

arr1 = np.arange(10)
arr1[0]
arr1[0:2]
#一維陣列與列表類似,陣列[起始位置:結束位置:步長]

1.2.2 多維陣列

arr2 = np.arange(12).reshape(3,4)
arr2[0][2]
arr2[0,2]
#陣列中間以逗號為分隔,陣列[行索引,列索引]

1.2.3 取連續多列

arr2[:,1:3]

array([[ 1,  2],
       [ 5,  6],
       [ 9, 10]])

1.2.4 取連續多行

arr2[0:2]

array([[0, 1, 2, 3],
       [4, 5, 6, 7]])

1.2.5 取不連續多行

#取1,3行
arr2[[0,2],:]

array([[ 0,  1,  2,  3],
       [ 8,  9, 10, 11]])

1.2.6 取不連續多列

#取1,3,4
arr2[:,[0,2,3]]

array([[ 0,  2,  3],
       [ 4,  6,  7],
       [ 8, 10, 11]])

1.2.7 條件篩選

#條件篩選
arr2>5
array([[False, False, False, False],
       [False, False,  True,  True],
       [ True,  True,  True,  True]])


arr2[arr2>5]
array([ 6,  7,  8,  9, 10, 11])

#取出當前陣列中所有大於5的偶數
arr2>5
array([[False, False, False, False],
       [False, False,  True,  True],
       [ True,  True,  True,  True]])

arr2%2==0
array([[ True, False,  True, False],
       [ True, False,  True, False],
       [ True, False,  True, False]])
       
arr2[(arr2>5) & (arr2%2==0)]
array([ 6,  8, 10])

1.3 元素計算函式

1.3.1 一元運算子

np.ceil() 引數可以是陣列也可以是數字,向上取整

np.floor() 引數可以是陣列也可以是數字,向下取整

np.rint() 四捨五入

np.abs 絕對值

np.square 平方

np.modf 將整數部分和整數部分分離作為單獨的陣列返回,返回形式是元組

np.isnan 判斷是否有空值

1.3.2 二元運算子

add 陣列相加,元素可以是數字或者陣列,但是陣列在相加的過程中,注意必須對應

subtract 陣列相減,元素可以是數字或者陣列,但是陣列在相加的過程中,注意必須對應

multiply 元素相乘

divide 元素相除

floor_divide 元素相除取整數商,拋去餘數

mod 取餘

power 元素求次方

1.3.3 三元運算子

# where(條件,返回值1,返回值2)  如果滿足條件,返回返回值1,否則返回返回值2 

#建立浮點型陣列,找到四捨五入後大於20或者小於15的數字,滿足則返回0,否則返回正常值
arr5 = np.random.uniform(10,25,size=(3,4))

arr5
array([[20.49391706, 22.51440077, 18.00017271, 12.60778079],
       [22.16917256, 22.04108387, 21.60469827, 17.1202335 ],
       [19.68909432, 24.12315481, 15.2338755 , 20.79586799]])

np.where((np.rint(arr5)>20)|(np.rint(arr5)<15),0,arr5)
array([[20.49391706,  0.        , 18.00017271,  0.        ],
       [ 0.        ,  0.        ,  0.        , 17.1202335 ],
       [19.68909432,  0.        , 15.2338755 ,  0.        ]])

相關文章