当前位置: 首页 > news >正文

Python numpy 与pandas

1.安装

pip3 install numpy 

pip3 install pandas 

2.npmpy基本操作
 

import numpy as np

# 创建一个一维数组
d1 = np.array([1,2,3,4,5])
# 查看数组长度
print(d1.size)
# 查看数组维度
print(d1.ndim)
# 二维数组
d2 = np.arange(15)
d2 = d2.reshape(3,5)
# d2 = np.arange(15).reshape(3,5)
# 遍历
for index,value in np.ndenumerate(d2):
    print(f'{index}的值{value}')

# 第二种创建方法
data1 = [[1,2,3],[4,5,6]]
# 查询数组的结构 返回的是一个元组 第一个元素表示行数,第二个元素表示列数
print(data1.shape)

# 创建全是0的数组
data2 = np.zeros(10)
data3 = np.zeros((2,5))
data4 = np.zeros((2,3,5))

# 遍历三维度数组
# for index,value in np.ndenumerate(data5):
#     print(f'索引{index}对应的值{value}')
data6 = np.ones((2,6))
print(data6)

# 转换类型
data = np.array(data,dtype=float)
data = data.astype(np.int64)
# 查询数组元素的类型
print(data.dtype)

# 切片
# 二维数组
# data= np.arange(14).reshape(2,7)
# print(data)
# # 逗号前面是匹配行数据,后面是匹配列数据
# print(data[1:,:3])
# print(data[:,3:4])
# print(data[1:,3:4])

# 三维数组
data = np.arange(30).reshape(2,3,5)
print(data)
# 逗号前面是匹配层数,后面是匹配行列数据
print(data[0:1,2:,:])
print(data[0:1,2:,:][0,0,2])
print(data[0:1,2:,2:3])

# 求方差
"""
方差 = (1-均值)**2 + (2-均值)**2 + (3-均值)**2 + (4-均值)**2 + (5-均值)**2
(1-3)**2 + (2-3)**2 + (3-3)**2 + (4-3)**2 +(5-3)**2 = 4+1+0+1+4 = 10
10/5 = 2 方差
"""
# d4 = np.var(data)
# print(d4)
# # 求标准差
"""
标准差 = 方差的开根号
根号2 = 1.4142135623730951
"""
# d5 = np.std(data)
# print(d5)
# 聚合运算
# data = np.array([1,2,3,4,5])
# # 累加
# print(np.sum(data))
# # 累乘
# print(np.prod(data))
# # 最大值
# print(np.max(data))
# # 最小值
# print(np.min(data))
# # 最大值的索引
# print(np.argmax(data))
# # 最小值的索引
# print(np.argmin(data))
# # 比较运算
# data1 = np.array([1,2,3,4,5])
# data2 = np.array([2,3,4,5,6])
# # 比较两个数组中对应元素的大小
# print(np.greater(data1,data2))
# # 比较两个数组中对应元素的大小
# print(np.greater_equal(data1,data2))
# # 比较两个数组中对应元素的大小
# print(np.less(data1,data2))

# 筛选与排序
# data = np.array([1,2,3,4,5,6,7,8,9,10])
# print(np.where(data >3)) # 输出的是索引值并不是元素值
# print(np.sort([5,4,3,2,1]))
# # 降序
# print(np.sort([5,4,3,2,1])[::-1])


# 什么是矩阵
# 矩阵是一个二维数组
"""
a = [1,2,3,4,5]
b = [100,200,300,400,500]

[1,2,3,4,5]
[[100,200,300],[400,500,600]]

1*100,2*200,3*300,
1*400,2*500,3*600

注意:矩阵计算的条件
"""

a = np.arange(15).reshape(3,5)
b = np.arange(15,30).reshape(3,5)
c = np.array([9,8,7,6])
print(a)
print(b)
print(c)

# 矩阵加
print(a+b)
# 矩阵减
print(a-b)

# 矩阵乘
print(2*a)
print(a*b)
# 使用numpy的矩阵相乘需要对a进行转置
a = a.T
print(a)

print(np.dot(a,b))

3.pandas

import pandas as pd
import numpy as np
data = {'apples':[3,2,0,1],'oranges':[0,3,7,2]}


# 通过DataFrame进行格式转换
data = pd.DataFrame(data)
print(data)
print(type(data))

# 提取某一列数据
app = data('apples')
print(app)

# 跳转顺序显示数据
app = pd.Series(app,index[3,2,0,1])

# 重置索引 索引变 值不变
print(app.reset_index(drop=True))

# 创建30个日期数据
# 创建一个dataframe格式的数据,由2010101开始
# periods:生成的日期个数
# freq:生成的日期频率,D:日,W:周,M:月,Q:季度,Y:年
dates = pd.date_range('20210101',periods=30,freq ='ME')

# 创建一个30行3列的随机数
# index:索引值 数组的左侧索引值由dates组成
# columns:列名分别位A B C

data = pd.DataFrame(np.random.rand(30,3),index=dates,columns=list('ABC'))
print(data)
# 获取头部的数据默认五行 可以调参数
print(data.head(3))
pirnt(data.head())
# 尾部
print(data.tail(3))

# 获取索引
print(data.index)
# 获取列名
print(data.columns)
# 查看数据
print(data.values)

# 转换成numpy格式
print(data.to_numpy())

# 查看统计摘要
print(data.describe())

# 获得列数据
print(data['A'])
print(data[['A','B']])
# 获得行数
print(data[0:10])
# 行列同时切片
print(data.loc['20210101':'20220101'],'A':'B')
# 四舍五入
# round(数据,保留小数后几位)
data = round(data,2)

# 条件筛选
print(data[data['A']==0.95]['A'])

# 去除缺失的值
print(data.droppna())

# 去重
print(data.drop_duplicates())

# 数据的排序
print(data.sort_values('A',asceding=False))

# 对索引
print(data.sort_index(ascending=False))

相关文章:

  • Apache Commons CLI 入门教程:轻松解析命令行参数
  • 运维面试题(十三)
  • linux一次启动多个jar包
  • 一键解锁Landsat 9地表温度计算!ENVI与ArcGIS Pro全流程详解(无需NASA大气校正)
  • 解决前端使用Axios时的跨域问题
  • 《MySQL从入门到精通》
  • 【数据集】上市公司投资效率及非效率投资数据测算+dofile(2000-2023年)
  • 深入理解计算机系统记录
  • README.md 完全指南:Markdown 语法+实例
  • 消息中间件kafka,rabbitMQ
  • MQTT、HTTP短轮询、HTTP长轮询、WebSocket
  • OBOO鸥柏如何以智能教育室内外触摸屏一体机AI变革硬件
  • 在Spring Boot中浅尝内存泄漏
  • C++多态知识点梳理
  • Java笔记5——面向对象(下)
  • 如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
  • 使WebSocket 稳定可靠,需要考虑的方向
  • 2025年十六届蓝桥杯Python B组原题及代码解析
  • 今日行情明日机会——20250414
  • css实现一键换肤
  • 上海首发经济“卷”到会展业,浦东签约三个年度“首展”
  • 习近平在中拉论坛第四届部长级会议开幕式的主旨讲话(全文)
  • 《审判》|“被告”的魅力:K在等什么?
  • 长沙通报一出租房疑存非法代孕:查封涉事场所,相关人员被控制
  • 江西省司法厅厅长张强已任江西省委政法委分管日常工作副书记
  • 浙江首个核酸药谷落子杭州,欢迎订阅《浪尖周报》第23期