目录
- 前言
- 一、Jupyter Notebook安装
- 二、练习
- 2.1、numpy的10道基础练习
- 2.1.1创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
- 2.1.2创建一个元素为从10到49的ndarray对象
- 2.1.3将第2题的所有元素位置反转
- 2.1.4使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
- 2.1.5创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0
- 2.1.6创建一个每一行都是从0到4的5*5矩阵
- 2.1.7创建一个范围在(0,1)之间的长度为12的等差数列
- 2.1.8创建一个长度为10的随机数组并排序
- 2.1.9创建一个长度为10的随机数组并将最大值替换为-100
- 2.1.10如何根据第3列来对一个5*5矩阵排序
- 2.2、python复习
- 2.3pandas、matplotlib库例题
- 三、什么是图灵测试
- 四、总结
- 五、参考资料
前言
本篇博客主要是在windows下的Anaconda环境下练习创建虚拟环境,在虚拟环境下安装 jupyter 和 numpy,并运行jupyter,完成numpy的不少于10道的基础练习,熟悉矩阵运算。学习python基础知识,用Jupyter完成numpy、pandas、matplotlib三个库的例题,了解“图灵测试”。
一、Jupyter Notebook安装
1.1安装前提
安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本)。
1.2使用Anaconda安装
我是通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中超过180个科学包及其依赖项。十分方便。详细安装步骤见:Anaconda介绍、安装及使用教程
安装完成后即可打开Jupyter Notebook,会自动弹出网页,只需要点击Python3即可开始练习。
二、练习
2.1、numpy的10道基础练习
2.1.1创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
2.1.2创建一个元素为从10到49的ndarray对象
2.1.3将第2题的所有元素位置反转
2.1.4使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
2.1.5创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0
2.1.6创建一个每一行都是从0到4的5*5矩阵
2.1.7创建一个范围在(0,1)之间的长度为12的等差数列
2.1.8创建一个长度为10的随机数组并排序
2.1.9创建一个长度为10的随机数组并将最大值替换为-100
2.1.10如何根据第3列来对一个5*5矩阵排序
2.2、python复习
2.2.1定义斐波那契数列推荐事件
代码:
import random
def fin_loop(n):
listNum = []
a,b = 0,1
for i in range(n):
a,b = b,a+b
listNum.append(a)
return listNum
if __name__ == "__main__":
listPlan = ['吃零食','学习','学习','学习','看电影','学习','旅游','睡觉','学习']
listNum = fin_loop(6)
varIdx = random.randint(0,5)
varRandom = listNum[varIdx]
print("今日计划:",listPlan[varRandom])
效果
2.2.2数字类型
代码:
i=3
print(id(i))
i+=1
print(id(i))
效果:
修改变量值后,地址值不同。
2.2.3字符串的访问(栅栏式)
代码:
str='Picture'
print(str[1:3])
print(str[-3:-1])
print(str[3:-1])
print(str[-6:7])
print(str[2:])
print(str*2)
print(str+"TEST")
效果:
2.2.4字符串的赋值
代码:
word='Python'
print(word[0],word[5])
print(word[-1],word[-6])
word[0]='Q'
效果
2.2.5List(列表)类型的访问
代码:
list=['a',56,1.13,'HelloWorld',[7,8,9]]
print(list)
print(list[4])
print(list[-2:5])
print(list[2:])
效果:
2.2.6列表元素的修改
代码:
a=[1,2,3,4,5,6]
a[0]=9
print(a)
a.append(7)
print(a)
a[2:5]=[]
print(a)
a.pop(2)
print(a)
效果:
2.2.7Tuple(元组)访问
代码
tuple=('Spiderman',2017,33.4,'Homecoming',14)
tinytuple=(16,'Marvel')
print(tuple)
print(tuple[0])
print(tuple[3:4])
print(tuple+tinytuple)
效果:
2.2.8Tuple(元组)修改
代码:
tuple=([16,'Marvel'],'Spiderman',2017,33.4,'Homecoming',14)
print(tuple[0])
tuple[0][0]='Marvel'
tuple[0][1]='16'
print(tuple)
效果:
2.2.9字典的使用
代码:
# 字典基本操作
dict = {'Name':'jiangjiang','Class':'人工智能与机器学习','Age':10}
# 字典的访问
print("Name:",dict['Name'])
print(dict)
# 添加 add
dict['Gender'] = 'male'
print(dict)
# 修改 update
dict.update({"No":"001"})
dict['Age'] ={8,9,10}
print(dict)
# 也可以使用 update 方法添加/修改多个数据
dict.update({'Gender':'Man','Id':'001'})
print(dict)
# 删除元素
del dict['Gender']
print(dict)
dict.clear()
print(dict)
效果:
2.2.10Set(集合)类型
代码:
# 集合基本操作
# 创建集合
var = set()
print(var,type(var))
var = {'LiLei','HanMeiMei','ZhangHua','LiLei','LiLei'}
print(var,type(var)) # 从输出中可以看出,集合中没有重复元素,与数学集合一致
# 集合成员检测
result = 'LiLei' in var
print(result)
result = 'jiangjiang' in var
print(result)
# 增删改查
var.add('jiangjiang')
print(var)
var.update('pl') # 该方法首选拆分元素,然后一次添加
print(var)
var.remove('LiLei') # 这里会删除所有一致元素
print(var)
# 集合的遍历
for item in var: # 方法1
print(item)
for item in enumerate(var): # 方法2
print(item)
# 交集、并集、差集
var1 = set()
var1 = {'jiangjiang','002','003'}
jiaoji = var&var1 # 交集
print(jiaoji)
bingji = var|var1 # 并集
print(bingji)
chaji = var-var1 # 差集
print(chaji)
效果
2.3pandas、matplotlib库例题
2.3.1为一个地理位置数据创建Series对象
代码:
import pandas as pd
print('------- 列表创建Series --------')
s1=pd.Series([1,1,1,1,1])
print(s1)
print('------- 字典创建Series --------')
s2=pd.Series({'Longitude':39,'Latitude':116,'Temperature':23})
print('First value in s2:',s2['Longitude'])
print('------- 用序列作Series索引 --------')
s3=pd.Series([3.4,0.8,2.1,0.3,1.5],range(5,10))
print('First value in s3:',s3[5])
效果:
2.3.2DataFrame对象
代码:
import pandas as pd
dict1={'col':[1,2,5,7],'col2':['a','b','c','d']}
df=pd.DataFrame(dict1)
df
效果:
2.3.3Pandas求方差
代码:
import numpy as np
import pandas as pd
a=np.arange(0,60,5)
a=a.reshape(3,4)
df=pd.DataFrame(a)
print(df)
print('-------------------')
print(df.std())
效果:
2.3.4绘制简单的plot表格
代码:
import matplotlib.pyplot as plt
fig=plt.figure()
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
效果:
2.3.5绘制多条简单直线
代码:
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.xlabel('x')
plt.ylabel('y')
plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)
plt.legend(['1.5x','2.5x','3.5x','4.5x'])
plt.title('simple lines')
plt.show()
效果:
2.3.6绘制sin(x)函数图像
代码:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-10,10,100) #列举出100个数据点
y=np.sin(x) #计算出对应的y
plt.plot(x,y,marker="o")
效果:
三、什么是图灵测试
3.1定义
图灵测试是指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。
进行多次测试后,如果机器让平均每个参与者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能。
3.2理解
在人类不知道对方是人类还是机器的情况下,通过对其提出的各种问题的反应来判断是人类还是电脑。通过一系列这样的测试,从电脑被误判断为人的几率就可以测出电脑智能的成功程度。
如果有30%的裁判认为其为人类,则称其拥有人类智能。
四、总结
第一次接触Jupyter Notebook,发现这种单元格式的编程还挺简单方便实用。下载起来也十分方便,直接安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中超过180个科学包及其依赖项。同时通过这个复习了一下之前学习的Python,为后面的学习打下了基础,同时了解numpy、pandas、matplotlib库运算和什么是图灵测试。