Python深度学习基予tensorflow(Numpy)

NumPy常用操作

NumPy提供了两种基本对象:ndarray,ufunc

生成ndarray

1、从已有数据中创建
(1)将列表转换成ndarray

import numpy as np
list1 = [3.14,2.17,0,1,2]
nd1 = np.array(list1)
print(nd1)
print(type(nd1))

(2)嵌套列表可以转化成多维ndarray

list2 = [[3.14,2.17,0,1,2],[1,2,3,4,5]]
nd2  = np.array(list2)
print(nd2)
print(type(nd2))

2、利用random模块生成ndarray

import numpy as np
nd5 = np.random.random([3,3])
print(nd5)
print(type(nd5))
#生成一个随机种子,对生成的随机书打乱
np.random.seed(123)
nd5_1 = np.random.randn(2,3)
print(nd5_1)
np.random.shuffle(nd5_1)
print('随机打乱数据后:')
print(nd5_1)
print(type(nd5_1))

3、创建特定形状的多维数组

import numpy as np
#生成全是0的3*3矩阵
nd6 = np.zeros([3,3])
#生成全是1的3*3矩阵
nd7 = np.ones([3,3])
#生成3阶的单位矩阵
nd8 = np.eye(3)
#生成3阶的对角矩阵
nd9 = np.diag([1,2,1])
print(nd6)
print(nd7)
print(nd8)
print(nd9)
#存取磁盘
np.savetxt(X=nd9,fname='./test2.txt')
np10 = np.loadtxt('./test2.txt')
print(np10)

4、利用arange函数

import numpy as np
print(np.arange(10))
print(np.arange(0,10))
print(np.arange(0,4,0.5))
print(np.arange(9,-1,-1))

存取元素

import numpy as np
from numpy import random as nr
np.random.seed(2018)
nd11 = np.random.random([10])
print(nd11)
#第四个元素
print(nd11[3])
#截取一段数据
print(nd11[3:6])
#截取固定间隔的数
print(nd11[1:6:2])
#倒取数字
print(nd11[::-2])
nd12 = np.arange(25).reshape([5,5])
#截取多维数组中一个区域内的数据
print(nd12[1:3,1:3])
#截取多维数组中,数值在一个值域内的数据
print(nd12[(nd12>3)&(nd12<10)])
#截取2,3行
print(nd12[[1,2]])
print(nd12[1:3,:])
#取2,3列
print(nd12[:,1:3])
#随机抽取数字
a = np.arange(1,25,dtype = float)
print(a)
c1 = nr.choice(a,size=(3,4))#size指输出数组的形状
c2 = nr.choice(a,size=(3,4),replace=False)#replace为True,即可重复抽取
print(c1)
print(c2)
c3 = nr.choice(a,size=(3,4),p = a/np.sum(a))#概率抽取
print(c3)

矩阵操作

Python深度学习基予tensorflow(Numpy)_第1张图片

import numpy as np

nd14 = np.arange(9).reshape([3,3])
print(nd14)
#转制
np.transpose(nd14)
print(nd14)
#矩阵乘法
a = np.arange(12).reshape([3,4])
print(a)
b = np.arange(8).reshape([4,2])
print(b)
print(a.dot(b))
#矩阵的迹
print(a.trace())
#矩阵行列式
print(np.linalg.det(nd14))
#计算矩阵的逆
c = np.random.random([3,3])
print(c)
print(np.linalg.solve(c,np.eye(3)))

数据合并与展平

1、合并一维数组

import numpy as np

a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.append(a,b)
print(a)
print(b)
print(c)
#利用concatenate
d = np.concatenate([a,b])
print(d)

2、合并多维数组

a = np.arange(4).reshape(2,2)
b= np.arange(4).reshape(2,2)
#当axis无定义时,是横向加成,返回总是为一维数组
#当axis为0时,数组是加在下面(列数要相同)
#当axis为1时,数组是加在右边(行数要相同)
c = np.append(a,b,axis=0)
print(c)
c = np.append(a,b,axis=1)
print(c)

3、矩阵展平

nd15 = np.arange(6).reshape(2,-1)
print(nd15)
#按列展平
print(nd15.ravel('F'))
#按行展平
print(nd15.ravel())

通用函数

Python深度学习基予tensorflow(Numpy)_第2张图片

广播机制

import numpy as np
a = np.arange(10)
print(a)
b = np.arange(10)
print(b)
print(a+b)
print(a+3)
print(a*b)
c = np.arange(10).reshape([5,2])
d = np.arange(2).reshape([1,2])
print(c+d)

你可能感兴趣的:(Python深度学习基予tensorflow(Numpy))