Loading...
墨滴

公众号:uncle39py

2022/01/14  阅读:27  主题:默认主题

numpy(2)

上一篇numpy写了大部分的使用,但还有一些遗漏,这一篇把它补充完整

numpy能够把最直观最常用的一维、二维、三维应用起来就可以。

numpy数组常用于对整体的数据进行整体的操作。而其他比如列表都需要用到循环(繁琐)

arr1 = np.eye(4)
#1、生成对角4个1的二维数组
#array([[1., 0., 0., 0.],
       [0.1.0.0.],
       [0.0.1.0.],
       [0.0.0.1.]])
arr = np.arange(0,20,1)
np.random.choice(arr,5)
#2、抽样,在arr的基础上随机抽取5个元素,arr必须是一维数组才可以抽样。

np.random.shuffle(arr)
#3、shuffle(英文:洗牌),将arr数组洗牌,shape不变元素顺序打乱
arr[(arr>7)&(arr<100)]
#4、布尔索引的时候可以多个条件拼接

以下5、6、7数据类型转换、缺失值处理、重复值处理常用于分析中的数据预处理

arr = np.arange(10)
arr.dtype   #dtype('int32')
arr_f =arr.astype(np.float64)
arr_f.dtype  #dtype('float64')
#5、对数组arr的元素进行数据转换(常用,常用于EXCEL中对表的数据进行转换,比如文本和数字)
#重点:arr_f =arr.astype(np.float64)
arr = np.array([1,2,np.nan,4])
np.isnan(arr)  
# 是否缺失值
# 输出array([False, False,  True, False])
arr[np.isnan(arr)]
# 查找缺失值
arr[np.isnan(arr)] = 0
# 把缺失值都赋成0
#6、数据分析中经常有缺失值替换掉的场景 
np.unique(arr)
#7、剔除掉数组arr中的重复值,剔除后arr中的值都不重复

8、数组拼接

arr1 = np.random.randint(1,100,(2,3))
arr2 = np.random.randint(1,100,(2,3))
#arr1
array([[251981],
       [805936]])
#arr2
array([[1166,  9],
       [819581]])
#横向拼接
np.concatenate([arr1,arr2],axis=1)
#array([[25, 19, 81, 11, 66,  9],
       [805936819581]])

#纵向拼接
np.concatenate([arr1,arr2],axis=0)
#array([[25, 19, 81],
       [805936],
       [1166,  9],
       [819581]])
       
#np.hstack() 横向拼接,效果一样
#np.vstack() 纵向拼接,效果一样

9、numpy的常用函数

此处的图片无法上传,可以关注公众号看全文:uncle39py

# 举例
np.abs(arr)
np.sqrt(arr)
np.aquare(arr)

arr1 = np.random.randint(1,100,(2,3))
#array([[ 8, 22, 97],
       [ 98787]])
arr1.sum()  # 所有求和
arr1.sum(axis=1)  # 横向相加,array([127, 183])
arr1.sum(axis=0)  # 重向相加,array([ 17, 109, 184])
arr1 = np.random.randint(1,100,(2,3))
#array([[ 8, 22, 97],
       [ 98787]])
#10、类似与excel中的if函数,如果条件为真,返回1,否则返回0
np.where(arr1>50,1,0)
#array([[0, 0, 1],
       [011]])

公众号:uncle39py

2022/01/14  阅读:27  主题:默认主题

作者介绍

公众号:uncle39py