python数据分析-numpy核心包

######创建array
import numpy as np

np.array([1,2,3])

np.array([0]*10)

a = np.zeros(10)

a.dtype

a = np.zeros(10,dtype = 'int')

a = np.ones(10)

a = np.empty(100)
a

#包前不包后
np.arange(2,10,3)
np.arange(2,10,0.3)

#arange的第三个参数为步长,linspace的第三个参数为份数
#包钱包后
a = np.linspace(0,100,101)
a.size
#结果为101

x =  np.linspace(-10,10,10000)
x

y = x**2

import matplotlib.pyplot as plt

plt.plot(x,y)
plt.show()

#对角矩阵
np.eye(10)



#####array索引和切片
a = np.arange(10)
a

a+1
a*3
3/a

b = np.arange(10,20)
b

#大小一样就可以做运算
a+b
a<b


a = np.arange(15).reshape((3,5))
np.arange(15).shape

a[0][0]
a[1,0]

a = np.arange(15)

#切片,顾头不顾尾
a[0:4]
a[:4]
a[4:]

b=list(range(10))
b
a=np.arange(10)
a

#切片时相当于视图,引用,并没有重新定义,指向a,
#视图是浅拷贝
c = a[0:4]

#列表是深拷贝
d = b[0:4]

c[0]=20
d[0]=20

a
b


a = np.arange(15).reshape((3,5))
a

a[0:2][0:2]
a[0:2]

a[0:2,0:2]



######array布尔型索引
import random
a = [random.randint(0,10) for i in range(20)]
a

list(filter(lambda x:x>5,a))

a = np.array(a)
a
a[a>5]

a = np.arange(4)
a[[True,False,False,True]]


a = [random.randint(0,10) for i in range(20)]
a
a = np.array(a)
a
b = a[a>5]
b[b%2==0]


# & 位运算符
a[a>5 & a%2==0] #错误
a[(a>5) & (a%2==0)] #可以重写&,但不能重写and

a[(a>5) | (a%2==0)]



#########花式索引

a = np.arange(20)

a[[1,2,3,5]]


a = np.arange(20).reshape((4,5))
a

a[0,2:4]
a[0,a[0]>2]
a[[1,3],[1,3]]

a[[1,3],[1,4]]

#先切行,再切列,
#先切第一行到第三行,列全切。列中行全切,在切第一列到第三列
a[[1,3],:][:,[1,3]] 




############array通用函数
abs(-1)

a = np.arange(-5,5)

abs(a)
np.abs(a)

np.sqrt(a)

#exp---指数
#log---对数

a = 1.6
int(a)  #1
round(a)    #2    #四舍五入

a=-1.6
int(a)  #-1
round(a)    #-2

import math
#向上取整
math.ceil(1.6)  #2
math.ceil(-1.6) #-1

#向下取整
math.floor(-1.6)    #-2

a = np.arange(-5.5,5.5)
np.floor(a)
np.ceil(a)
np.round(a)

#向0取证
np.trunc(a)

np.rint(a)  #与round相同


np.modf(a)  #整数与小数分开

x,y = np.modf(a)

x
y

a = np.arange(0,5)
5/a

#nan:不等于任何浮点数,甚至  nan != nan
#inf:比任何浮点数都大

float('3.5')
float('nan')
float('inf')

np.nan == np.nan

np.isnan(5/a)

a[~(np.isnan(a))]


float('inf') > 100000000000 #比任何数都大

a = np.array([1,2,3,4,5])
b = np.array([1,0,3,0,5])
c = a/b

np.inf == np.inf

c[c!=np.inf]
c[~np.isinf(c)]


b=np.array([3,0,5,0,7])
a
np.maximum(a,b)
np.minimum(a,b)



###############统计方法和随机数生成
#方差:表示整数数据的离散程度,方差越小,离散程度越小
#标准差:方差开根号,

a = np.arange(0,10,0.2)
a.mean()
a.std()
a.var()

#可以根据均值加减标准差来估计整个数据的范围
a.mean()+a.std()
a.mean()-a.std()

a.argmax()
a.argmin()



import random

random.random()
random.random(0,10)

random.choice([1,2,3,4,5])

a=[1,2,3,4,5]
random.shuffle(a)
a

np.random.randint(10)   #0-1的10个数
np.random.randint(0,10,10)  #产生0-10的10个数
np.random.randint(0,10,(3,5))   #产生三行五列的二维数组

np.random.choice([1,2,3,4,5])
np.random.choice([1,2,3,4,5],10)

random.uniform(2.0,4.0) #平均分布
np.random.uniform(2.0,4.0,10)




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值