研究AI非常难,需要数学、编程、机器学习的基础, 但是使用AI却很简单。 Python最大的优势,就是它非常接近自然语言,易于阅读理解,编程更加简单直接,更加适合初学者。人工智能和Python互相之间成就者对方,人工智能算法促进Python的发展,而Python也让算法更加简单。
Python的设计混合了传统语言的软件工程的特点和脚本语言的易用性,
具有如下特性:
# Python Number 数据类型用于存储数值,包括整型、长整型、浮点型、复数
# Python 中数学运算常用的函数基本都在 math 模块
import math
print(math.ceil(4.1)) #返回数字的上入整数
print(math.floor(4.9)) #返回数字的下舍整数
print(math.fabs(-10)) #返回数字的绝对值
print(math.sqrt(9)) #返回数字的平方根
print(math.exp(1)) #返回e的x次幂
# python中随机数
import random
# 随机生成一个 [0,1)范围内的实数
ran = random.random()
print(ran)
# 随机生成一个 [1,20)范围内的整数
ran = random.randint(1,20)
print(ran)
# 当使用 random.seed(x) 设定好种子之后, random()
# 生成的随机数将会是同一个。
print("----------设置种子seed---------")
random.seed(10)
print("Random number with seed 10:",random.random())
random.seed(10)
print("Random number with seed 10:",random.random())
# 单引号、双引号、三引号
# Python中的字符串可以使用单引号 、双引号和
# 三引号(三个单引号或三个双引号)括起来,
# 使用反斜杠 \ 转义特殊字符
print('hello world')
print("hello world")
print("The \t is a tab")
print("I\'m going to the movies")
print('''I'm going to the movies''')
words = '''
# 单引号、双引号、三引号
# Python中的字符串可以使用单引号 、双引号和
# 三引号(三个单引号或三个双引号)括起来,
# 使用反斜杠 \ 转义特殊字符
'''
print(words)
# 字符串拼接
str1 = "hello "
str2 = "world"
print(str1+str2)
# 使用join运算符
new_str = '__'.join('hello')
print(new_str)
# 声明一个列表,并使用下标访问元素
# 声明一个列表
names = ['cat','dog','pig','fish','bird']
# 通过下标或索引获得元素
print(names[0])
print(names[1])
# 访问最后一个元素
print(names[-1])
print(names[len(names)-1])
# 访问第一个元素
print(names[-5])
# 列表查询
# 查询names列表里有没有'fish'的元素
flag = 0
for name in names:
if name == 'fish':
print("有")
flag = 1
break
if flag == 0:
print("没有")
# 一个更简单的方法
if "fish" in names:
print("有")
else:
print("没有")
# 列表添加
# append():在列表末尾追加元素
# 声明一个空列表
girls = []
# append(),末尾追加
girls.append('杨超越')
print(girls)
# extend():合并列表
models =['刘雯','奚梦瑶']
girls.extend(models)
print(girls)
# insert():在指定位置添加
girls.insert(1,'余书欣')
print(girls)
# 列表修改
# 修改指定元素
fruits = ['apple','pear','香蕉','pineapple','草莓']
print(fruits)
fruits[-1] = 'strawberry'
print(fruits)
# 将fruits列表中的‘香蕉’替换为‘banana’
for i in range(len(fruits)):
if '香蕉' in fruits[i]:
fruits[i] = 'banana'
break
print(fruits)
# 列表删除
# del()
words = ['cat','hello','pen','pencil','ruler']
del words[1]
print(words)
# remove()
words = ['cat','hello','pen','pencil','ruler']
words.remove('cat')
print(words)
# pop()
words = ['cat','hello','pen','pencil','ruler']
words.pop(1)
print(words)
# 元素 | cat | dog | tiger | snake | mouse | bird |
# 正向 | 0 | 1 | 2 | 3 | 4 | 5 |
# 反向 | -6 | -5 | -4 | -3 | -2 | -1 |
animals = ['cat','dog','tiger','snake','mouse','bird']
print(animals[2:5])
print(animals[-1:])
print(animals[-3:-1])
print(animals[::2])
print(animals[-5:-1:2])
# 列表排序
# 生成10个不同的随机数,存至列表中,并进行排序
import random
random_list = []
i = 0
while i < 10:
ran = random.randint(1,20)
if ran not in random_list:
random_list.append(ran)
i+=1
print(random_list)
# 默认升序
new_list = sorted(random_list)
print(new_list)
# 降序
new_list = sorted(random_list,reverse = True)
print(new_list)
# 与列表类似,区别是元组中的内容不可修改
# 定义一个元组, 注意:元组中只有一个元素时,需要在后面加逗号
tuple1 = ()
print(type(tuple1))
tuple2 = ('hello')
print(type(tuple2))
tuple3 = ('hello',)
print(type(tuple3))
# 列表转元组
# 元组不能修改,所以不存在往元组里加入元素。作为容器的元组,如何存放元素?
import random
random_list = []
for i in range(10):
ran = random.randint(1,20)
random_list.append(ran)
print(random_list)
random_tuple = tuple(random_list)
print(random_tuple)
# 元组截取
print(random_tuple)
print(random_tuple[0])
print(random_tuple[-1])
print(random_tuple[1:-3])
print(random_tuple[::-1])
# 元组中的一些函数
print(max(random_tuple))
print(min(random_tuple))
print(sum(random_tuple))
print(len(random_tuple))
# 元组的拆包与装包
# 元组元素个数与变量个数相等:
# 定义一个元组
t3 = (1,2,3)
# 将元组赋值给变量a,b,c
a,b,c = t3
# 打印a,b,c
print(t3)
# 元组元素个数与变量个数不相等:
# 定义一个元组,包含5个元素
t4 = (1,2,3,4,5)
# 将t4[0],t4[1]分别赋值给a,b;其余元素装包后赋值给c
a,b,*c = t4
print(a,b,c)
print(c)
# 定义一个空字典
dict1 = {}
# 定义一个字典的同时,进行初始化
dict2 = {'name':'杨超越','weight':45,'age':25}
print(dict2['name'])
# 定义一个字典,之后添加元素
dict4 = {}
dict4['name'] = '虞书欣'
dict4['weight'] = 43
print(dict4)
# 修改字典元素
dict4['weight'] = 44
print(dict4)
# 字典相关函数
# items()
dict5 = {"杨超越":165,"虞书欣":166,"上官子怡":164}
print(dict5.items())
for key,value in dict5.items():
if value >165:
print(key)
# keys()
names = dict5.keys()
print(names)
# values()
# 求小姐姐的平均身高
heights = dict5.values()
print(heights)
total = sum(heights)
print(total)
avg = total/len(heights)
print(avg)
# del
dict6 = {"杨超越":165,"虞书欣":166,"上官子怡":164}
del dict6['杨超越']
print(dict6)
# pop()
result = dict6.pop('虞书欣')
print(result)
print(dict6)
"""
定义一个类Animals:
(1)__init()__定义构造函数,与其他面向对象语言不
同的是, Python语言中,会明确地把代表自身实例
的self作为第一个参数传入
(2)创建一个实例化对象 cat, init()方法接收参数
(3)使用点号 . 来访问对象的属性。
"""
class animal:
def __init__(self,name):
self.name = name
print("动物名称实例化")
def eat(self):
print(self.name + "吃")
def drink(self):
print(self.name + "喝")
cat = animal('miaomiao')
print(cat.name)
cat.eat()
cat.drink()
'''
通过继承创建的新类称为子类或派生类,被
继承的类称为基类、父类或超类。
'''
class person:
def __init__(self,name):
self.name = name
print("调用父类构造函数")
def eat(self):
print("调用父类方法")
class student(person): # 定义子类
def __init__(self):
print("调用子类构造方法")
def study(self):
print("调用子类方法")
s = student() # 实例化子类
s.study() # 调用子类方法
s.eat() # 调用父类方法
# JSON序列化: json.dumps 用于将 Python 对象编码成 JSON 字符串
import json
data = [{'b':2,'d':4,'a':1,'c':3,'e':5}]
json_format = json.dumps(data,sort_keys=True,indent=4,separators=(',',':'))
print(json_format)
# JSON反序列化: json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型
jsondata = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
text = json.loads(jsondata)
print(text)
Python被大量应用在数据挖掘和深度学习领域,其中使用极其广泛的是Numpy、 Pandas、 Matplotlib、 PIL等库。
Numpy就是用来进行矩阵计算的,而Pandas则基于Numpy,丰富并简化了Numpy的操作。
人工智能导论与应用实践课程----百度飞桨