Python环境配置与数据处理
一、任务
-
在windows或ubuntu下的Anaconda环境下练习创建虚拟环境,在虚拟环境下安装 jupyter 和 numpy,并运行jupyter,完成numpy的不少于10道的基础练习,熟悉矩阵运算。
Anacond和Jupyter的使用可参考网上或者教材1.3节。 -
学习python基础知识,用完成教材前1-2章上的例题,每一章例题数量不少于5道。
-
参考教材第3章,用Jupyter完成numpy、pandas、matplotlib三个库的例题,每个库不少于3个例题,在Jupyter完成。
-
解释什么是“图灵测试"?
二、Anaconda安装
Anaconda 是专门为了方便使用 Python 进行数据科学研究而建立的一组软件包,涵盖了数据科学领域常见的 Python 库,并且自带了专门用来解决软件环境依赖问题的 conda 包管理系统。主要是提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
Anaconda 下载地址: https://www.continuum.io/downloads,Linux、Mac、Windows均支持。
Anaconda安装教程参考博客添加链接描述
1.在cmd中输入 :python(按回车键),——查看是否有Python环境
2.更改conda源
在Anaconda prompt中操作:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
三、安装 jupyter 和 numpy
1.创建Anaconda虚拟环境
conda create -n your_env_name python=x.x
2.anaconda命令创建python版本为x.x,名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
3 .安装jupyter
激活或者切换虚拟环境
打开命令行,输入python --version检查当前 python 版本。
Linux: source activate your_env_nam
Windows: activate your_env_name
安装jupyter命令:
conda install -n myconda jupyter notebook
安装numpy命令:
conda install -n myconda numpy
检验jupyter是否安装成功
在上述环境中输入命令打开jupyter
jupyter notebook
四、numpy基础练习
导入相关库:
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
%matplotlib inline
1、创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
import numpy as np#导入numpy包
nd = np.zeros(10)#np.zeros是创建一个全是0的数组——nd
nd[4]=1#对第五个数进行赋值
nd#直接对创建的数组显示
结果
array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])
2、创建一个元素为从10到49的ndarray对象
n2 = np.arange(10,50)#顺序生成
n2
结果:
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49])
3、将第2题的所有元素位置反转
n3 = n2[::-1]
n3
结果:
array([49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33,
32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16,
15, 14, 13, 12, 11, 10])
4、使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
n4 = np.random.random([10,10])#随机生成10*10
print (n4.max())
print (n4.min())
5、创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0
n5 = np.zeros([10,10])
n5[0,:]=1#第一行,所有列
n5[:,0]=1#所有行,第一列
n5[9,:]=1#第十行,所有列
n5[:,9]=1#所有行,第十列
n5
结果
array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]])
6、矩阵相加,55矩阵+15的向量,相当于每一行都加上1*5矩阵
<span style="font-size:18px;">>>> Z = np.zeros((5,5))
>>> Z += np.arange(5)
>>> print Z
[[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]]</span>
7、linspace函数,在给定区间中生成均匀分布的给定个数。
函数原型 linspace(start, stop, num=50, endpoint=True, retstep=False)
<span style="font-size:18px;">>>> Z = np.linspace(0,10,11,endpoint=True, retstep=False)
>>> print Z
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]</span>
8、sort函数。调用random模块中的random函数生成10个随机数,然后sort排序。
<span style="font-size:18px;">>>> Z = np.random.random(10)
>>> Z.sort()
>>> print Z
[ 0.15978787 0.28050494 0.35865916 0.40047826 0.45141311
0.4828367
0.66133575 0.66775779 0.69278544 0.98095989]</span>
9、allclose函数,判断两个array在误差范围内是否相等
函数原型allclose(a, b, rtol=1e-05, atol=1e-08),若absolute(a - b) <= (atol + rtol * absolute(b))则相等。
<span style="font-size:18px;">A = np.random.randint(0,2,5)
B = np.random.randint(0,2,5)
equal = np.allclose(A,B)
print equal</span>
10、mean函数,求平均值
<span style="font-size:18px;">>>> Z = np.random.random(30)
>>> m = Z.mean()
>>> print m
0.362299527973
>>> A = np.random.randint(0,2,5)
>>> B = np.random.randint(0,2,5)
>>> equal = np.allclose(A,B)
>>> print equal
False
</span>
五、“图灵测试"
图灵测试是测试人在与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。问过一些问题后,如果被测试者超过30%的答复不能使测试人确认出哪个是人、哪个是机器的回答,那么这台机器就通过了测试,并被认为具有人类智能。图灵测试 2014 的举办方英国雷丁大学发布新闻稿,宣称俄罗斯人弗拉基米尔·维西罗夫(Vladimir Veselov)创立的人工智能软件尤金·古斯特曼(Eugene Goostman)通过了图灵测试。如果这一结论获得确认,那么这将是人工智能乃至于计算机史上的一个里程碑事件。
六、总结
实验过程注意代码细节,切勿编写错误出错却找不到错哪。