今日python代码_Numpy

 Numpy——数据分析基础工具


  1. zeros
  2. ones
  3. diag
  4. arange
  5. linspace
  6. logspace
  7. 维度变换
  8. 数组拼接
  9. 数组分割
  10. 数组复制
  11. 矩阵运算
  12. 矩阵转置
  13. 特征值和特征向量
  14. 平均值
  15. 最值
  16. 中位数
  17. 极差
  18. 方差
  19. 协方差
  20. 皮尔森相关系数
#matplotlib/sea-born/pandas进行数据可视化显示
#缺失值异常值通过pandas/sklearn等进行清洗
import numpy as np
a=np.array([1,2,3])
b=np.array([[1,2],[3,4]])
c=np.array([1,2,3,4,5],ndmin=2)#最小维度
d=np.array([1,2,3],dtype=complex) #dtype参数
print(a)
print(b)
print(c)
print(d)
#运行结果#
# [1 2 3]
#[[1 2]
 #[3 4]]
#[[1 2 3 4 5]]
#[1.+0.j 2.+0.j 3.+0.j]

a=np.array([[1,5],[4,5,2],3])
a5=np.array(([1,5,3,4,5],[6,2,7,9,5]))
print(type(a))
print(a)
print(a5)
print(a.dtype)#查看每个元素的类型
print(a5.dtype)
print(a.shape)#查看数组的行列
print(a5.shape)
print(a.shape[0])#查看行数
print(a5.shape[1])#查看列数
print(a.ndim)#获取数组的维数
print(a5.ndim)
print(a5.T)#简单转置矩阵
#numpy.zeros
#默认为浮点数
x=np.zeros(5)
print(x)
#[0.0.0.0.0.]
#设置数据类型为整数
y=np.zeros((5,),dtype=np.int)
print(y)
#[0 0 0 0 0]
#自定义类型
z=np.zeros((2,2),dtype=[('x','i4'),('y','i4')])
print(z)
#[[(0,0),(0,0)]
#[(0,0)(0,0)]]

#numpy.ones
x=np.ones(5)
print(x)
#[1.1.1.1.1.]
x=np.ones([2,2],dtype=int)
print(x)
#[[1,1]
#[1,1]]

#diag对角矩阵
x=np.diag([1,2,3])
print(x)
#[[1,0,0]
#[0,2,0]
#[0,0,3]]

#arange
a=np.arange(10)
print(a)
a5=np.arange(1,2,0.1)#范围是1-2,布长为0.1
print(a5)
#创建指定数量间隔的数列
a=np.linspace(0,1,10)#从0开始到1结束,共10个数的等差数列
print(a)
#logspace生成等比数列
a=np.logspace(0,1,5)#生成首位为10的0次方,末位为10的1次方,含5个数的等比数列

#arr:要修改形状的数组
#newshape:整数或整数数组新形状
#order:‘C'为C风格顺序,'F'为F风格顺序,'A'为原顺序
a=np.array([1,2,3,4,5])
b=np,reshape(2,3)
c=np.reshape((2,3))
c=np.reshape(a,(2,3))
print(a)#[1,2,3,4,5]
print(b)#[[1 2 3] [4 5 6]]
print(c)#[[1 2 3] [4 5 6]]
print(d)#[[1 2 3] [4 5 6]]

#flatten数组降维
a=np.array([[1,2,3],[4,5,6]])
b=a. flatten()
c=a.ravel()#多维转一维
d=a.reshape(-1)#参数为-1,表示数组的维度通过数据本身判断
print(a)#[[1 2 3][4 5 6]]
print(b)#[1 2 3 4 5 6]
print(c)#[1 2 3 4 5 6]
print(d)#[1 2 3 4 5 6]

#swapaxes将数组n个维度中两个维度进行调换
a=np.array([[1 2 3],[4 5 6]])
b=a.transpose()
c=a.T
d=a.swapaxes(0,1)
e=np.transpose(a,(1,0))
print(a)#[[1 2 3][4 5 6]]
print(b)#[[1 4][2 5][3 6]]
print(c)#[[1 4][2 5][3 6]]
print(d)#[[1 4][2 5][3 6]]
print(e)#[[1 4][2 5][3 6]]

#数组拼接
#hstack横向拼接
a=np.arange(6).reshape(3,2)
b=a*2
c=np.hstack((a,b))
print(a)
print(b)
print(c)
#[[0 1]
#[2 3]
#[4 5]]
#[[0 2]
#[4 6]
#[8 10]]
#[[0 1 0 2]
#[2 3 4 6]
#[4 5 8 10]]

#vstack纵向合并
a=np.arange(6).reshape(3,2)
b=a*2
c=np.vstack((a,b))
print(a)
print(b)
print(c)
#[[0 1]
#[2 3]
#[4 5]]
#[[0 2]
#[4 6]
#[8 10]]
#[[0 1]
#[2 3]
#[4 5]
#[0 2]
#[4 6]
#[8 10]]
#concatenate横向纵向合并(数组要求:1.相同维度的数组2.除了axis外,其余维度对应相等)
a=np.array([[1 2 3],[4 5 6]])
b=np.arange(2 8).reshape(2,3)
c1=np.concatenate([a,b],axis=0)
d1=np.concatenate([a,b],axis=1)
print(a)#[[1 2 3][4 5 6]]
print(b)#[[2 3 4][5 6 7]]
print(c1)#[[1 2 3][4 5 6][2 3 4][5 6 7]]
print(d1)#[[1 2 3 4 5 6][4 5 6 5 6 7]]

#数组分割 vsplit按行分割 hsplit按列分割
a=np.arange(1,19).reshape(6,3)
b,c=np.split(a,[4],axis=0)#灵活分割,列不够4
d,e=np.vsplit(a,[4])##前4行和余下的

#数组复制
a=np.array([1,2,3])
b=a
c=a[:]
d=np.copy(a)
print(b is a,c is a,d is a)#输出TURE OR FALSE
d[0]=10
print(a,d)#a不变d变
c[0]=100
print(a,c)#a,c都变
#索引和切片
a=np.array([[1,2,3,4,5],[6,7,8,9,10]])
print(a)
print(a[:])#选取全部元素
print(a[1])#选取行为1的元素即第二行的元素
print(a[0:1])#截取[0,1)元素
print(a[1,2:5])#截取第2行第[2,5)的元素
print(a[1,:])#截取第2行的元素
print(a[1,2])#截取第行号为1列号为2元素,即7
#按条件截取
print(a[a>5])#截取矩阵a中大于5的数,范围是一维数组
print(a>5)#比较a中的元素是否大于5,输出值False或True
a[a>5]=0#将矩阵中大于5的元素替换为0
print(a)
x=slice(1)
print(a[x])

import numpy as np
import numpy.linalg as lg#求矩阵的逆首先要导入numpy.linalg
a1=np.array([[1,2,3],[4,5,6],[5,4,5]])
a5=np.array([[1,5,4],[3,4,7],[7,5,6]])
print(a1+a5)#相加
print(a1-a5)#相减
print(a1/a5)#对应元素相除,如果都是整数则取商
print(a1%a5)#对应元素相除后取余
print(a1**5)#矩阵每个元素都取n次方
print(a1.dot(a5))#矩阵a1 a5相乘
print(a1.transpose())#等价于a1.T
print(lg.inv(a1))#用linalg的inv()函数来求逆
print(np.linalg.eig(a1))#求矩阵的特征值和特征向量
x=np.array([160,156,157,284,379,290,198,109,189])
mean=np.mean(x)#求均值
print(mean)
min=np.min(x)#求最小值
max=np.max(x)#求最大值
median=np.median(x)#求中位数
ptp=np.ptp(x)#求极差
var=a1.var()#求方差
cov=np.cov(x)#求协方差
correlation=np.corrcoef(a1,a5)#计算皮尔森相关系数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苑苑圆圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值