《深度学习入门》(俗称:鱼书)读书笔记-第一章(python basis)

《深度学习入门》(俗称:鱼书)读书笔记 Day1

python基础

python是动态类型语言一般比C/C++(编译性语言)运行慢。在python追求性能时可以使用C/C++处理,python在调用。

1.算术计算

note:python2中,整数除以整数结果是整数。python3中,整数除以整数结果是小数。

2.数据类型

基本数据类型:int,float,str等
字符串拼接支持"+"
type()函数

#例
type(10)
>>> <class 'int'>#此后“>>>"均表示输出

python属于“动态类型语言”,其中的变量同样具有类型推导机制,即变量的类型根据情况自动确定。

1.列表

#列表
a=[1,2,3,4,5]
#1.元素访问支持下标访问与赋值,同样从0开始
a[0]
>>> 1
#2.列表长度
len(a)
>>> 5
#3.切片访问
## 左闭右开
a[0:2]
>>> [1,2]
a[1:]#下标为1到最后
>>> [2,3,4,5]
a[:3]#[0,2)
>>>[1,2,3]
a[:-1]#第一个元素到最后一个元素的前一个元素(即倒数第二个)
>>> [1,2,3,4]
a[:-2]#第一个元素到倒数第二个元素的上一个
>>>[1,2,3]

note:索引-1对应最后一个元素,-2对应倒数第二个元素

2.字典

类似于map,根据键值对的方式存取数据

#生成
me={'h':180}
#访问
me['h']
>>>180#直接返回对应存储的数据类型
#添加
me['w']=60
print(me)
>>>{'h':180,'w':60}

3.bool

同样取值True或False。
支持运算符:and(与),or(或),not(非)

控制语句

这里只记录一下有特点的
for语句
支持for in结构

for i in [1,2,3]
    print(i)
>>>1'\n'2'\n'3'\n'

if 语句:不加括号,使用缩进来表示执行语句的模块

h=Ture
if h:
    print("its true")
else:
    print("not true")
    print("try it agait")

一个缩进对应4个空白字符

函数

没什么好记的

例:

class Man:
    def __init__(self,name):
        self.name=name
        print("Initialized")
    def hello(self):
        print("hello")
    def goodbye(self):
        print("bye")
m=Man("dad")
m.hello()
m.goodbye()
>>>Initialized
>>>hello
>>>bye

init(self,参数···):是构造函数,在构建实例的时候调用一次。
实例变量是存储在各个实例中的变量。可以用类似self.name(上例)的方法,通过self来访问或者生成实例变量

Numpy

import numpy as np
#1.生成numpy数组
x=np.array([1,2,3])
print(x)
>>>[1.,2.,3.]
#2.算数运算——对应元素的运算(要求运算的两个array大小相同)
x=np.array([1,2,3])
y=np.array([2,3,4])
print(x+y)
>>>array([3.,5.,7.])
print(x-y)
>>>array([-1.,-1.,-1])
#x*y,x/y类似,均为对应元素想作用
print(x/2.0)#与标量进行运算,是各个元素均和这个标量进行运算
>>>array([0.5,1.,1.5])
#多维数组
z=np.array([[1,2],[3,2]])
#形状
z.shape
>>>(2,2)
#数组元素类型
z.dtype
>>>dtype('int64')

note:多维数组的算术运算和一维的一样,同样是要求大小相同,然后对应元素运算。标量然后基于广播同所有元素运算*
数学上将一维数组称为向量,二维称为矩阵。将一般化后的向量或矩阵称为张量。

广播

不同形状的数组之间也可以进行运算。例

A=np.array([[1,2],[3,4]])
B=np.array([10,20])
print(A*B)
>>>array([[10,40],[30,80]])

在这个例子中B被扩展为[ [10,20],[10,20] ],然后在和A以对应元素的方式进行相乘。这个功能称为广播。

访问元素

X=np.array([1,2],[3,4],[5,6])
print(X[0])
>>>array([1,2])#和普通的二维数组访问方式相同
#for循环访问
for temp in X:#二维数组如果这样访问的话,访问的结果是一维数组形式
    print(temp)
>>>[1 2]#
>>>[3 4]
>>>[5 6]
Y=X.flatten()#变为一维数组
print(Y)
>>>[1 2 3 4 5 6]
print(X[np.array([0,2,4])])#支持数组来获取元素,获取索引为0,2,4的元素
>>>array([1,3,5])
#支持对整个数组进行不等号运算
print(X>3)
>>>array([False,False,False,True,True,True])
#结合数组和上面的返回结果
print(X[X>3])
>>>array([4,5,6])

Matplotlib

用于图形绘制和可视化

import matplotlib.pyplot as ply
from matplotlib.image import imread
plt.plot(x,y,label="",linestyle="")#label图线标题,linestyle图线形状
plt.xlabel("")#x轴标签
plt.ylabel("")#y轴标签
plt.title("")#标题
plt.legend()#标签
img=imread('')#图片路径
plt.imshow(img)#显示图片
plt.show()

你可能感兴趣的:(python,深度学习,numpy)