数据分析--numpy高级使用

import numpy as np
import random
#1切片和序列一致
arr=np.arange(3,18)
print(arr[2:4])#[3 4],不包含结尾的数字
print(arr[-1])#9
print(arr[::2])#[1 3 5 7 9]
print("*"*10)
brr=arr#两者的id是一样的
print(brr)
brr=arr[:]#对arr做了切片,两者的id不同了
print(brr)

#2.高级切片  布尔类型切片
print(arr>6)#[False False False False False False  True  True  True]
print(arr[arr>6])#[7 8 9] 为true成员保留  为false 删除
print(arr!=9)#取不等于9的
print(arr[arr!=9])#[1 2 3 4 5 6 7 8]
#切片 大于9 小于12
print(arr[(arr>9) & (arr<12)])#[10 11]

#3向量运算
arr=np.array([1,2,3,4,5,6])
brr=np.array([3,4,2,46,2,5])
print(arr+3)#[4 5 6 7 8 9]
print(arr+brr)#[ 4  6  5 50  7 11]
print("&"*100)

#4.Numpy统计方法(轴方向axis : 0,1)(sum,max,min,argmax,mean,cumsum,comprod)
arr=np.arange(1,10).reshape(3,3)
print(arr)
print(arr.sum())#没有设置轴方向,所有成员进行累加
print(arr.sum(axis=1))#axis=1 行相加, axis=0列相加
print(arr.max(axis=0))
print(arr.mean(axis=0))#平均值
print(arr.argmax())#取最大值的位置
print(arr.argmin())
print(arr.cumsum())#累加求和
print(np.cumprod(arr,axis=1))#累加求和

#5.numpy去重,np.unique
arr=np.array([3,4,5,6,5,4,2,4,6,4,2])
print(arr)
print(np.unique(arr))
arr=np.array([2.32,5.35,7.97,6.40])
print(np.ceil(arr))#向上取整
print(np.floor(arr))#向下取整
#numpy.around(a,decimals)
# 1.a 输入数组
# 2.	decimals 要舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
print("四舍五入:",np.around(arr,1))#四舍五入: [2.3 5.4 8.  6.4]
print("四舍五入:",np.around(arr,0))#四舍五入:  [2. 5. 8. 6.]
print("四舍五入:",np.around(arr,-1))#四舍五入: [ 0. 10. 10. 10.]

# 练习1: 产生1-9随机数,要求3*3二维数组
arr=np.random.randint(1,10,size=(3,3))
print(arr)
# 练习2: 统计每列中大于6的元素个数
print(arr>6)
brr=arr>6
print(brr.sum(axis=0))
print("*"*100)
# 练习3:统计一行中三个值都是大于3的行的个数
arr=np.array([[2,13,11],[22,33,44],[77,88,99]])
print(arr>3)
brr=arr>3
crr=brr.sum(axis=1)
print(crr)
drr=crr==3
print(drr.sum())
#all表示必须都满足时候才返回
brr=arr>3
print(brr)
print(brr.all(axis=1).sum())

#练习4,产生1-9随机数,要求3*3二维数组,每个数组只出现一次
arr=np.arange(1,10)
random.shuffle(arr)#把arr数组随机排列
print(arr)
print(arr.reshape(3,3))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值