数据科学技术与应用的学习-2

学习记录(bushi

课堂内容

Numpy库
处理数组的库,一维、二维、多维都可以,查看维数np.ndim,查看数组元素总数np.size,查看数组的行列np.shape,查看数据的元素类型np.dtype

import numpy as np #导入numpy库
first=np.array([1,2,3,4,5]) #创建一个一维数组
second=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]) #创建一个二维数组,中括号里面再次中括号

数组切片(slicing)

first[[0,1,2]] #查看第1、2、3个元素
first[0:2] #查看第1、2个元素
second[1,0] #查看第2行第1列的元素
second[:,1])#查看第2列的所有元素
second[[0,1],[2,3]] #查看第1行第23列和第2行第4列的元素
second[:,[1,2]] #查看第2、3列的所有行的元素
second[[1,2],:] #查看第2、3行的所有列的元素

条件筛选

mask=(number==1)|(number==2) #条件为number为1和number为2
mask #条件是一个布尔值组成的数组
number[mask] #筛选number中复合条件的元素

函数
生成一个范围的一维数组arrange(),将一维数组转换成多维数组reshape(),生成指定大小的全0数组zero(),生成指定大小的全1数组ones()

a=np.arange(0,10,1) #生成一个0到9的一维数组,步长为1
a.reshape(2,5) #将一维数组a转换成2*5的二维数组
b=np.zeros((2,5)) #生成一个2*5的全0数组,括号里面再括号
c=np.ones((2,5)) #生成一个2*5的全1数组,括号里面再括号

数组运算
全数组的数值加减乘除乘方可以直接运算,大小相同的数组与数组之间也可以进行直接加减乘除乘方,一定要行、列都相等

b+1 #全0数组b的每一个元素都+1
c*5 #全1数组c的每一个元素都*5
b+c #b数组的每一个元素与c数组的对应位置的元素相加

也可以给数组里单独某个元素进行运算

b[1,0]+1 #给数组b的第2行,第1列的元素+1

还可以进行函数计算

c.sum(axis=0) #数组c按列求和
second.mean() #数组second的所有元素求平均值
first.argmax() #数组first的最大元素是第几个
c.cumsum() #数组c从0号位开始往后累加

随机生成数组
random模块可以生成随机样本,randint生成随机的一组整数,uniform生成均匀分布的随机数,normal生成服从正态分布的随机数

np.random.randint(0,11,10) #生成10个元素的一维随机数组,取值范围在0到10
np.random.randint(0,11,(2,3)) #生成2*3的随机数组,取值范围在0到10
np.random.uniform(0,11,10) #生成0到10的均匀分布的随机数
np.random.normal(0,1,10) #生成0到1的服从正态分布的随机数

练(zuo)习(ye)
因为怠惰太久而找不到题目细节的作业

1、“大润发”、“沃尔玛”、“联华”和“农工商”四个超市都卖苹果、香蕉、桔子、猕猴桃和芒果5种水果。使用NumPy的ndarray实现数据处理功能。

import numpy as np
Markets=np.array(['大润发','沃尔玛','联华','农工商'])
print('超市名称分别为:'+','.join((str(i)for i in Markets)))
Fruits=np.array(['apple','banana','orange','kivi','mango'])
print('水果的名称分别为:'+','.join((str(i)for i in Fruits)))
Price=np.random.randint(4,11,20).reshape(4,5)
print('各个超市的水果价格为:')
print(Price)
print('大润发苹果价格+1:'+''.join((str(i)for i in Price[Markets=='大润发',Fruits=='apple']+1)))
print('好德香蕉价格+1:'+''.join((str(i)for i in Price[Markets=='联华',Fruits=='banana']+1)))
print('农工商所有水果价格-2:'+''.join((str(i)for i in Price[Markets=='农工商']-2)))
print('苹果均价:'+(str(Price[:,Fruits=='apple'].mean())))
print('芒果均价:'+(str(Price[:,Fruits=='mango'].mean())))
n=Price[:,Fruits=='orange'].argmax()
print('桔子最贵的超市是:'+str(Markets[n])+'超市')

2、基于随机游走实例,使用ndarray和随机数生成函数模拟一个物体在三维空间随机游走的过程。

import numpy as np
steps=10
rndwlk=np.random.normal(0,1,size=(3,steps))
position=rndwlk.cumsum(axis=1)
dists=np.sqrt(position[0]**2+position[1]**2+position[2]**2)
print('z轴上到达的最远距离为:',abs(position[2]).max())
print('物体在三维空间距原点的最近距离为:',dists.min())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值