机器学习中数据分析库简介

Numpy

ndarray元素类型是相同的,数据与数据的地址是连续的

python列表中元素类型是任意的,只能通过寻址方式找到下一个元素

ndarray的使用

这里主要使用ndarray.shapendarray.dtype

三维数组,第一个2是两个二维数组

生成数组的方法

生成固定范围的数组

ndarray.linspace

ndarray.arange

ndarray.logspace

生成随机数组

ndarray.random模块

正态分布,μ决定了其位置,标准差σ决定了其分布的幅度,σ越小,越瘦


#Numpy的基本使用
import numpy as np #先引用一下库,再给它起个别名
这里比较重要的两个模块分别是shape和dtype
#ndarray.shape是数组维度的元组

用法:np.array(object, dtype=None, ndmin=0)
"""
object:任何提供array接口的对象,如列表,元组等

dtype:元素类型,如int,float等

ndmin: nd array的维度(dimention)
"""
用法:np.arange([start,] stop[, step,], dtype=None)
"""
start:起始数字

stop:结束数字,返回的array不包含该数

step:步长

dtype:数据类型,如果不指定则根据给定条件的数据类型来定

"""
用法:linspace(start, stop, num=50, dtype=None, axis=0)
"""
start:起始数字

stop:结束数字,返回的array包含该数

num:返回的值的个数

dtype:数据类型,如果不指定则根据给定条件的数据类型来定
"""

总而言之,从这里可以看到,ndarray的主要用法就三种

即:np.array np.arrange np.linspace

其次就是ndarray的属性了


>>> import numpy as np     
>>> ary=np.arange(1,10)
>>> ary
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> ary.ndim
1
>>> ary.shape
(9,)
>>> ary.size
9
>>> ary.dtype   
dtype('int32')
>>> ary.itemsize
4

这是最常用的还是ndarray.shape和ndarray.dtype

代码展示


# 导入所需模块
import pandas as pd
import numpy as np 

# 查看索引、数据类型和内存信息
df.info()

# 查看数值型列汇总统计
df.describe()

# 查看销量为0 的行
df.loc[df['销量']==0,:].head()

 # 按销量排序
df.sort_values('销量', ascending=False).head()

Matplotlib

import matplotlib.pyplot as plt

matplotlib的运用由三部分,首先是数据处理

就是提供一堆数据,就像是数据集一样

然后就是绘制图表,规定一下其长宽和dpi分辨率,对其x轴和y轴进行定义,还可以对其轴刻度进行细分

最后就是就是创建图表了,根据其提供的数据,然后对其进行绘制我们所想得到的线段图表

嗯~ o(* ̄▽ ̄*)o,好像也差不多吧,意思是那个意思,数据处理一个在绘制图像的上面。

现在翻一下代码看看


import matplotlib
from matplotlib import pyplot as plt
matplotlib.rcParams['font.family'] = 'SimHei'#这个很重要,用这个就可以识别中文
#准备数据
data = [{'年份': 2016, '收入': 14.5},
        {'年份': 2017, '收入': 15.6},
        {'年份': 2018, '收入': 17.9},
        {'年份': 2019, '收入': 23.4},
        {'年份': 2020, '收入': 18.6}
        ]
year = [str(item['年份']) for item in data]#这里就是对x轴刻度进行定义
income = [item['收入'] for item in data]#这里就是对y轴刻度进行定义

#创建画布
plt.figure(figsize=(10,4),dpi=100)
#绘制图像
plt.plot(year,income) #plt.plot(x,y)
plt.ylim(0, 30)     # 设置y轴刻度范围
plt.title('收入情况') #设置标题
plt.xlabel('年份')#x轴内容
plt.ylabel('万元')#y轴内容

#添加x,y轴刻度
#修改x,y轴刻度间隔
# plt.xticks=(x[::5],x_ticks_lable)
# plt.yticks=(y_ticks[::5])
#图像显示
plt.show()

Pandas

Pandas是什么

Pandas 是一个开源的第三方 Python 库,从 Numpy 和 Matplotlib 的基础上构建而来,享有数据分析“三剑客之一”的盛名(NumPy、Matplotlib、Pandas)。Pandas 已经成为 Python 数据分析的必备高级工具,它的目标是成为强大、灵活、可以支持任何编程语言的数据分析工具。

在 ndarray 数组(NumPy 中的数组)的基础上构建出了两种不同的数据结构,分别是 Series(一维数据结构)DataFrame(二维数据结构):


#Series的用法
import pandas as pd
s=pd.Series( data, index, dtype, copy)

参数名称描述

data输入的数据,可以是列表、常量、ndarray 数组等。

index索引值必须是惟一的,如果没有传递索引,则默认为 np.arrange(n)。

dtypedtype表示数据类型,如果没有提供,则会自动判断得出。

copy表示对 data 进行拷贝,默认为 False。


import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data)
print (s)
#这里我好像发现了numpy就像是打工人,负责输入数据,而pandas就像老板,直接让Series经理调用输出一下就好,自己想的形象比喻哈哈

这里还可以将键值对dict传进去


import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}#这里打工人就不需要了,data默默的承担了所有
s = pd.Series(data)
print(s)

这里就算是吧b后面的1.的.去掉,输出的也是浮点型


import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print(s)

b 1.0
c 2.0
d NaN
a 0.0
dtype: float64
#当传递的索引值无法找到与其对应的值时,使用 NaN(非数字)填充

这里可以看出经理内部index的地位就是比data打工人高,index赋值多少,就是多少,不管打工人原来给的多少。

这里获取元素位置和切片与原有类似


import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
print(s[0])  #位置下标
print(s['a']) #标签下标

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
print(s[-3:])

c  3
d  4
e  5
dtype: int64

emmm看了大牛的文档,发现有一些我都没见过不知道怎么用的,先不管了,嫖过来再说,以后要是用到了呢

axes以列表的形式返回所有行索引标签。

dtype返回对象的数据类型。

empty返回一个空的 Series 对象。

ndim返回输入数据的维数。

size返回输入数据的元素数量。

values以 ndarray 的形式返回 Series 对象。

index返回一个RangeIndex对象,用来描述索引的取值范围。

哎,我仔细一看其实很多我都见过,像什么values值ndim维数size数量dtype数据类型

但这里的empty,

返回一个布尔值,用于判断数据对象是否为空。


import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(5))
print("是否为空对象?")
print (s.empty)

是否为空对象?
False

import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(5))
print(s)
#这里先创建一个series对象

0    0.898097
1    0.730210
2    2.307401
3   -1.723065
4    0.346728
dtype: float64

random创建出来的上述示例的行索引标签是 [0,1,2,3,4]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努力的阿瑞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值