数组元素的切片

一维数组

#一维数组
#切片方法和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])

三维数组

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]]

改变数组的形状

#当改变形状时,应该考虑到数组中元素的个数,确保改变前后,元素总个数相等。
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)

数组间的运算

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)

函数

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)) #取各元素的绝对值

按行求和&按列求和

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

秩(rank):轴的个数

二维

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

可以理解为

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))

可以理解为

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

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

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

数组堆叠运算

一维

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))

二维

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))

矩阵运算

矩阵乘法

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

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)相关推荐

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

    多维数组 形状(Shape): 是一个元组,描述数组的维度,以及各个维度的长度. 长度(Length): 某个维度中的元素个数. 数字 单门课程成绩 1*课程成绩 一维数组 多门课程成绩 n*课程成绩 ...

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

    矩阵和随机数 矩阵 创建矩阵 #创建矩阵 astring = np.mat("1 2 3; 4 5 6") alist = [[1,2,3],[4,5,6]] anplist = ...

  3. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(Matplotlib绘图基础<散点图>python)

    散点图(Scatter): 是数据点在直角坐标系中的分布图 scatter() 函数 marker参数--数据点样式 添加文字--text() 函数 坐标轴设置 增加图例 绘制标准正态分布的散点图步骤 ...

  4. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(Matplotlib绘图基础<1>python)

    数据可视化 数据分析阶段:理解和洞察数据之间的关系 算法调试阶段:发现问题,优化算法 项目总结阶段:展示项目成果 Matplotlib: 第三方库,可以快速方便地生成高质量的图表 安装Matplotl ...

  5. 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(开发环境介绍)

    开发环境介绍 Python3 1.结构清晰,简单易学 2.丰富的标准库 3.强大的的第三方生态系统 4.开源.开放体系 5.高可扩展性:胶水语言 6.高可扩展性:胶水语言 7.解释型语言,实现复杂算法 ...

  6. 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(安装TensorFlow2.0)

    创建环境并激活 conda create --name tensorflow2.0 python==3.7 activate tensorflow2.0 安装相关软件包(conda命令或pip命令2选 ...

  7. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python模块、包和库)

    模块(Module) 模块是一个python文件(.py),拥有多个功能相近的函数或类. 便于代码复用,提高编程效率,提高了代码的可维护性. 避免函数名和变量名冲突. 包(Package) 为了避免模 ...

  8. 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python运算符和表达式)

    从程序中学习知识点 1.算术运算符 #运算符(Operator):完成不同类型的常量.变量之间的运算 #除法运算 / 结果是一个浮点型的精确数的值,与java等其他语言的不同之处 print(7/2, ...

  9. 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python常量、变量和表达式)

    从程序中学习知识点 1. #支持6中表达形式 数字 字符串 列表 元组 字典 集合 #数字 整型(正整数 负整数 零) #Python3中的整数可以任意大,而不用担心位数不够而导致溢出的情况 intn ...

最新文章

  1. [数字图像处理]图像去噪初步(2)--非线性滤波器
  2. 大话设计模式(六 关于Flex的争论)
  3. mysql mode_mysql中的sql_mode
  4. ASP.NET Core 程序发布到Linux(Centos7)爬坑实战
  5. 思维构造——cf1090D
  6. 训练日志 2019.1.26
  7. spring Boot环境下dubbo+zookeeper的一个基础讲解与示例
  8. 艺术招生考试/艺术职称考试/才艺比赛/艺术特长考试/舞蹈比赛等-评委现场打分公开展示系统的定制
  9. Bernoulli-Gaussian分布
  10. ISODATA聚类分析算法原理与C++实现
  11. Aras Innovator: 如何在Form中放入图片
  12. qs计算机圣安排名,圣安德鲁斯大学世界排名及专业排名汇总(QS世界大学排名版)...
  13. mysql frm 修复_使用mysqlfrm恢复frm表结构
  14. 西瓜视频运营策略分析:借助平台优势实现内容升级
  15. Element UI 组件库分析和二次开发(一)
  16. 两个相离圆上各取一点P、Q,求线段PQ中点M的轨迹。
  17. C语言的for循环转verilog,Verilog for 循环语句
  18. 换肤 技术 (转载)
  19. 2022年苏州大学872真题整理【回忆版】
  20. 【熬夜肝了】一篇数据库规范,你应该用的上

热门文章

  1. 高一计算机网络技术应用计划,高一计算机网络应用基础教学计划
  2. 【SP26073】DIVCNT1 - Counting Divisors 题解
  3. 微信公众平台-杂项:小程序导航
  4. 最长不下降子序列 (O(nlogn)算法)
  5. 系统搭建遇到问题3:Ubuntu问题造成网卡名称异常导致Vivado绑定网卡地址的Lic无法正常工作(JESD)...
  6. 8个有趣的Linux提示与技巧
  7. viewgroup 渲染过程
  8. 【转】Windows Server2008 R2下安装Oracle 10g
  9. 三极管驱动(讲的比较好)
  10. 你是个有魅力的人吗?人格魅力这样修养而成