Python机器学习入门小试



一、Jupyter Notebook介绍、安装及使用教程

参考:Jupyter Notebook介绍、安装及使用教程

涉及到需要官网下载太慢的文件我都会放在这个阿里云链接里:
以下是安装流程。
在这里插入图片描述
在这里插入图片描述

Anaconda安装成功:
在这里插入图片描述
Jupyter Notebook安装成功:
在这里插入图片描述

二、 10道numpy练习

引入库:

# ! pip install numpy
# ! pip install pandas
# ! pip install matplotlib

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
 
%matplotlib inline

【例3.1】建立一个一维ndarray数组。
import numpy as np
a = np.array([1,2,3])
print(a)
在这里插入图片描述
【例3.2】创建二维数组。
import numpy as np
a = np.array([[1,2], [3,4]])
print(a)
在这里插入图片描述
【例3.3】使用ndmin参数设置数组的最小维度。
import numpy as np
a = np.array([1,2,3,4,5], ndmin=2)
print(a)
在这里插入图片描述

【例3.4】使用dtype 参数设置为数组类型为复数。
import numpy as np
a = np.array([1,2,3], dtype = np.complex)
print(a)
在这里插入图片描述

【例3.5】调整数组大小。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print (a)
在这里插入图片描述

【例3.6】调整数组大小。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print (b)
在这里插入图片描述

【例3.7】创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
s1 = np.zeros(shape=10)
s1在这里插入图片描述
【例3.8】给定一个4维矩阵,如何得到最后两维的和?
n11 = np.random.randint(0,100,size=(2,3,3,3))
n11
n11.sum(axis=(2,3))
n11.sum(axis=(-1,-2))
在这里插入图片描述
【例3.9】给定数组[1, 2, 3, 4, 5],如何得到在这个数组的每个元素之间插入3个0后的新数组?
nd1 = np.arange(1,6)
nd2 = np.zeros(shape=17, dtype=int)
nd2[::4] = nd1
nd2
n12 = np.array([1,2,3,4,5]).reshape(5,1)
n12
n12_1 = np.zeros((5,3))
n12_1
n12 = np.concatenate([n12,n12_1],axis=1)
n12
n12.reshape(-1)
在这里插入图片描述
【例3.10】给定一个二维矩阵,如何交换其中两行的元素?
n13 = np.random.randint(0,100,size=(3,3))
n13
n13[[1,0,2]]
在这里插入图片描述

三、pandas

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。
Pandas 名字衍生自术语 “panel data”(面板数据)和 “Python data analysis”(Python 数据分析)。
Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。
Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。
Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。
Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。
数据结构
Series 是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

  1. 创建
# 导入Pandas库
import pandas as pd

# 构建Series,其中index和name是可选项
series = pd.Series([1,2,"da"],index=["a","b","c"],name="ss")
series 

在这里插入图片描述

  1. 切片、修改
# 切片
series[:2]

# 索引
series["a"]

# 修改值
series["a"] = 6
series[1] = 88
series

在这里插入图片描述

  1. 其他属性
# Series的属性:dtype, index, values, name
series.dtype
series.index
series.values
series.name

在这里插入图片描述
示例
创建一个DataFrame(df),用data做数据,labels做行索引

import pandas as pd
import numpy as np
data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],
      'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],
      'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
      'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

1.显示有关此df及其数据的基本信息的摘要

df.describe()
# 或
df.info()

在这里插入图片描述

  1. 查看此df的前三行数据
df.head(3)

在这里插入图片描述

  1. 选择df中列标签为animal和age的数据
df.loc[:, ['animal', 'age']]

在这里插入图片描述

  1. 选择行为[3, 4, 8],且列为[‘animal’, ‘age’]中的数据
df.iloc[[3, 4, 8]].loc[:, ['animal', 'age']]
# 或
df.loc[df.index[[3, 4, 8]], ['animal', 'age']]

在这里插入图片描述

  1. 选择age为缺失值的行
df[df['age'].isnull()]

在这里插入图片描述

四、matplotlib

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,也可以和图形工具包一起使用。和Pandas、Numpy并成为数据科学三兄弟(我自己想的)。

1.导入matplotlib库简写为plt

import matplotlib.pyplot as plt
  1. 在一张图里绘制sin,cos的图形,并展示图例
x = np.linspace(0, 10, 1000)
fig, ax = plt.subplots()

ax.plot(x, np.sin(x), label='sin')
ax.plot(x, np.cos(x), '--', label='cos')
ax.legend();

在这里插入图片描述

  1. 调整图例在左上角展示,且不显示边框
ax.legend(loc='upper left', frameon=False);
fig

在这里插入图片描述

  1. 在一个1010的画布中,(0.65,0.65)的位置创建一个0.20.2的子图
ax1 = plt.axes()
ax2 = plt.axes([0.65, 0.65, 0.2, 0.2])

在这里插入图片描述

  1. 在2个子图中,显示sin(x)和cos(x)的图像
fig = plt.figure()
ax1 = fig.add_axes([0.1, 0.5, 0.8, 0.4], ylim=(-1.2, 1.2))
ax2 = fig.add_axes([0.1, 0.1, 0.8, 0.4], ylim=(-1.2, 1.2))

x = np.linspace(0, 10)
ax1.plot(np.sin(x));
ax2.plot(np.cos(x));

在这里插入图片描述

  1. 绘制一组三维点
ax = plt.axes(projection='3d')
zdata = 15 * np.random.random(100)
xdata = np.sin(zdata) + 0.1 * np.random.randn(100)
ydata = np.cos(zdata) + 0.1 * np.random.randn(100)
ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='Greens');

在这里插入图片描述


总结

通过本次机器学习小试,我深刻体会到了python的强大与便捷。从安装上来说,安装可以通过Anaconda一键安装,从编程上来说,比ros操作要少敲4很多命令行,代码编写可以马上运行得到结果。代码结构不需要很完整,随编随跑,还有很多强大的包引入。通过本次实操,我逐渐萌生了很多新奇的想法,比如写一个爬虫,从各大网页上获取数据并分析。这将会为工作和学习带来极大极大的便利。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值