神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)

数组元素的切片

一维数组

#一维数组
#切片方法和Python序列数据结构的切片一样
a=np.array([0,1,2,3,4],dtype=np.int64)#占用新的内存
#不包括结束位置
print(a[0:3])
print(a[:3])
print(a[0:])

二维数组

#二维数组
a=np.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]],dtype=np.int64)
print(a[0:2])
print(a[:2])
print(a[0:])
print(a[0:2,0:2])
print(a[:,0])

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第1张图片

三维数组

a=np.array([[[0,31,2,23,4],[5,56,76,8,79],[10,11,12,13,14]],[[15,16,17,18,19],[10,11,12,13,14],[15,16,17,18,19]],[[0,1,2,3,4],[5,86,87,88,9],[10,11,12,13,14]],[[90,1,92,3,94],[5,6,7,8,9],[10,11,12,13,14]]],dtype=np.int64)
print("原始数据:\n",a)
print(" ")
print(a[0:2])
print(" ")
print(a[:2])
print(" ")
print(a[0:])
print(" ")
print(a[0:2,0:2])
print(" ")
print(a[:,0])
print(" ")
print(a[:,:,0])
原始数据:
 [[[ 0 31  2 23  4]
  [ 5 56 76  8 79]
  [10 11 12 13 14]]

 [[15 16 17 18 19]
  [10 11 12 13 14]
  [15 16 17 18 19]]

 [[ 0  1  2  3  4]
  [ 5 86 87 88  9]
  [10 11 12 13 14]]

 [[90  1 92  3 94]
  [ 5  6  7  8  9]
  [10 11 12 13 14]]]




[[[ 0 31  2 23  4]
  [ 5 56 76  8 79]
  [10 11 12 13 14]]

 [[15 16 17 18 19]
  [10 11 12 13 14]
  [15 16 17 18 19]]]




[[[ 0 31  2 23  4]
  [ 5 56 76  8 79]
  [10 11 12 13 14]]

 [[15 16 17 18 19]
  [10 11 12 13 14]
  [15 16 17 18 19]]]



[[[ 0 31  2 23  4]
  [ 5 56 76  8 79]
  [10 11 12 13 14]]

 [[15 16 17 18 19]
  [10 11 12 13 14]
  [15 16 17 18 19]]

 [[ 0  1  2  3  4]
  [ 5 86 87 88  9]
  [10 11 12 13 14]]

 [[90  1 92  3 94]
  [ 5  6  7  8  9]
  [10 11 12 13 14]]]




[[[ 0 31  2 23  4]
  [ 5 56 76  8 79]]

 [[15 16 17 18 19]
  [10 11 12 13 14]]]



[[ 0 31  2 23  4]
 [15 16 17 18 19]
 [ 0  1  2  3  4]
 [90  1 92  3 94]]



[[ 0  5 10]
 [15 10 15]
 [ 0  5 10]
 [90  5 10]]

改变数组的形状

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第2张图片

#当改变形状时,应该考虑到数组中元素的个数,确保改变前后,元素总个数相等。
b=np.arange(12)
print(b)
c=b.reshape((-1,1))#不改变当前数组,按照shape创建新的数组 -1自动计算出这个维度的取值
print(b)
print(c)
d=b.reshape((3,4))
print(d)
b.resize((3,4))#改变当前数组,按照shape创建数组
print(b)
e=np.arange(16).reshape(4,4)
print(e)
f=np.arange(16).reshape(2,4,2)
print(f)

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第3张图片

数组间的运算

a = np.array([0,1,2,3,4])
b = np.array([5,6,7,8,9])
c = np.array([[5,6,7,8,9],[0,1,2,3,4]])
# #数组加法,数组间对应元素相加,元素形状长度相同
print(a+b)
#1维和2维可以相加(1维与二维每行相加)
print(a+c)
# #幂运算:对每个数组中的元素求n次方
print(a**2)
# #矩阵运算:矩阵对应元素相乘
print(a*b)
print(a*c)

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第4张图片

函数

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第5张图片

import numpy as np
a = np.array([0,-1,2,3,4])
a1 = np.array([0,1,2,3,4])
b = np.array([5,6,7,-8,9])
c = np.array([[5,-6,7,8,9],[0,-1,2,3,-4]])
print(np.sum(c)) #计算所有元素的和
print(np.prod(b)) #计算所有元素的乘积
print(np.diff(a)) #计算数组的相邻元素之间的差
print(np.sqrt(a1)) #计算各元素的平方根
print(np.exp(a)) #计算各元素的指数值
print(np.abs(a)) #取各元素的绝对值

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第6张图片

按行求和&按列求和

轴(axes):数组中的每一个维度被称为一个轴

秩(rank):轴的个数

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第7张图片

二维

b=np.arange(12).reshape(3,4)
print(b)
print("列\n",np.sum(b,axis=0))
print("行\n",np.sum(b,axis=1))

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第8张图片

可以理解为

axis=0时结果是4个数

axis=1时结果是3个数

三维

b=np.arange(24).reshape(2,3,4)
print(b)
print(" axis=0\n",np.sum(b,axis=0))
print(" axis=1\n",np.sum(b,axis=1))
print(" axis=2\n",np.sum(b,axis=2))

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第9张图片

可以理解为

axis=0时结果是[3,4]的数组(3行4列)

axis=1时结果是[2,4]的数组(2行4列)

axis=2时结果是[2,3]的数组(2行3列)

数组堆叠运算

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第10张图片

一维

a = np.array([0,1,2,3,4])
b = np.array([5,6,7,8,9])
#数组堆叠
# np.stack( (数组1, 数组2,...) , axis)
print(np.stack((a,b),axis=0))
print(np.stack((a,b),axis=1))

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第11张图片

二维

c = np.array([[5,6,7,8,9],[0,1,92,3,4]])
d = np.array([[5,6,7,8,9],[0,1,2,3,10]])
print(np.stack((c,d),axis=0))
print(np.stack((c,d),axis=1))
print(np.stack((c,d),axis=2))

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第12张图片

矩阵运算

矩阵乘法

矩阵相乘:按照矩阵相乘的规则运算

a = np.array([[1,1],[0,1]])
b = np.array([[2,0],[3,4]])
c = np.array([[5,6,7,8,9],[0,1,2,3,4]])
#矩阵相乘,按照矩阵相乘的规则运算
print("矩阵相乘\n",np.matmul(a,b))
print("矩阵相乘\n",np.dot(a,b))
#矩阵转置
print("矩阵转置\n",np.transpose(a))
#矩阵求逆
print("矩阵求逆\n",np.linalg.inv(a))

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)_第13张图片

你可能感兴趣的:(python,python,numpy)