数据处理分析模块 Pandas(3)

k
摘要由CSDN通过智能技术生成

1  NumPy索引切片玫瑰花操作

import numpy as np
import matplotlib.pyplot as plt
img = plt.imread('./rose.jpg')
img.shape # 高、宽度、颜色
# 615高度像素
# 650宽度像素
# 3颜色通道:红绿蓝
img

输出:

array([[[246, 246, 246],
        [246, 246, 246],
        [246, 246, 246],
        ...,
        [246, 246, 246],
        [246, 246, 246],
        [246, 246, 246]],

       [[246, 246, 246],
        [246, 246, 246],
        [246, 246, 246],
        ...,
        [246, 246, 246],
        [246, 246, 246],
        [246, 246, 246]],

       [[246, 246, 246],
        [246, 246, 246],
        [246, 246, 246],
        ...,
        [246, 246, 246],
        [246, 246, 246],
        [246, 246, 246]],

       ...,

       [[246, 246, 246],
        [246, 246, 246],
        [246, 246, 246],
        ...,
        [246, 246, 246],
        [246, 246, 246],
        [246, 246, 246]],

       [[246, 246, 246],
        [246, 246, 246],
        [246, 246, 246],
        ...,
        [246, 246, 246],
        [246, 246, 246],
        [246, 246, 246]],

       [[246, 246, 246],
        [246, 246, 246],
        [246, 246, 246],
        ...,
        [246, 246, 246],
        [246, 246, 246],
        [246, 246, 246]]], dtype=uint8)
img.ndim

输出:3

plt.imshow(img)

# 红色玫瑰
# 蓝色妖姬,贵
# 红绿蓝 ---> 蓝绿红
plt.imshow(img[:,:,::-1]) #前两个#代表原本红绿蓝,后面为从新设置的颜色顺序,倒序

# # 红绿蓝 ---> 绿红蓝
# 花式索引
plt.imshow(img[:,:,[1,0,2]]) #前两个#代表原本红绿蓝,后面为从新设置的颜色顺序

2  pandas

2.1  数据结构

* Python在数据处理和准备方面一直做得很好,但在数据分析和建模方面就差一些。pandas帮助填补了这一空白,使您能够在Python中执行整个数据分析工作流程,而不必切换到更特定于领域的语言,如R。
* 与出色的 jupyter工具包和其他库相结合,Python中用于进行数据分析的环境在性能、生产率和协作能力方面都是卓越的。
* pandas是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。pandas是Python进行数据分析的必备高级工具。
* pandas的主要数据结构是 **Series(**一维数据)与 **DataFrame **(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数案例
* 处理数据一般分为几个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,Pandas 是处理数据的理想工具。
* pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

一维结构Series

import pandas as pd

s = pd.Series(data = [0,3,5,7],index = ['a','b','c','d'])

# 一维Series之前NumPy(自然索引0~n)不同点?区别在于索引,一一对应
s = pd.Series(data = [0,3,5,7]) # 不指定索引,默认

输出:

0    0
1    3
2    5
3    7
dtype: int64

二维结构DataFrame

import pandas as pd

import numpy as np

# Excel 类似
pd.DataFrame(data = np.random.randint(0,150,size = (5,3)),
             columns=['Python','En','Math'],
             index = list('ABCDE'),dtype=np.float32)

输出:

Python En Math
A 140.0 129.0 49.0
B 66.0 120.0 134.0
C 19.0 47.0 35.0
D 84.0 103.0 32.0
E 103.0 9.0 91.0
list('ABCDE')

输出:['A', 'B', 'C', 'D', 'E']
import pandas as pd

import numpy as np

# Excel 类似
# 创建DataFrame第二种方式,字典中的key作为列索引
df = pd.DataFrame(data = {'Python':np.random.randint(100,150,size = 5),
                     'En':np.random.randint(0,150,size = 5),
                     'Math':np.random.randint(0,150,size = 5)},index = list('ABCDE'))
#df.sort_index(ascending=False)#ascending=false则将行索引倒序
# index不设置,则默认自增
df
输出:

  Python En	Math
A	102	70	107
B	116	6	107
C	142	87	45
D	132	145	55
E	130	72	51

2.2  数据查看

import numpy as np
import pandas as pd
# 创建 shape(150,3)的二维标签数组结构DataFrame
df = pd.DataFrame(data = np.random.randint(0,151,size = (150,3)),
                   index = None,# 行索引默认
                   columns=['Python','Math','En'])# 列索引

df['Python'] = df['Python'].astype(np.int16)#可以用这个函数更改数据类型
# 查看其属性、概览和统计信息
df.head(10) # 显示头部10行,默认5个
df.tail() # 显示末尾10行,默认5个
df.shape # 查看形状,行数和列数
df.dtypes # 查看数据类型
df.index # 行索引
df.columns # 列索引
df.values # 对象值,二维ndarray数组
df.describe() # 查看数值型列的汇总统计,计数、平均值、标准差、最小值、四分位数、最大值
df.info() # 查看列索引、数据类型、非空计数和内存信息

2.3  数据输入,保存和输出

import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.random.randint(0,50,size = [5,5]), # 薪资情况
               columns=['IT','化工','生物','教师','士兵'],index = list('ABCDE'))
display(df)
# 保存到当前路径下,文件命名是:salary.csv。csv逗号分割值文件格式
df.to_csv('./保存文件.csv',
          sep = ',', # 文本分隔符,默认是逗号
          header = True,# 是否保存列索引
          index = True) # 是否保存行索引,保存行索引,文件被加载时,默认行索引会作为一列

#输出:

  IT 化工	生物	教师	士兵
A	9	31	41	38	18
B	31	11	6	24	18
C	12	0	32	1	9
D	28	44	18	10	13
E	14	3	17	9	26

并将文件保存在目录
# 读取文件
pd.read_csv('./salary.csv',
            sep = ',',# 默认是逗号
            header = [
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值