本讲主要介绍对numpy库和numpy库的N维数组对象:ndarray的基本了解。更多内容请看numpy入门详细教程(二)

numpy:

NumPy是一个开源的Python科学计算基础库,包含:
• 一个强大的N维数组对象 ndarray
• 广播功能函数
• 整合C/C++/Fortran代码的工具
• 线性代数、傅里叶变换、随机数生成等功能
NumPy是SciPy、Pandas等数据处理或科学计算库的基础

numpy的引用

import numpy as np

np是numpy模块的别名,尽管别名可以省略或更改,建议使用上述约定俗成的别名

numpy的N维数组对象:ndarray

Python已有列表类型,为什么需要一个数组对象(类型)?
例:计算 A 2 +B 3 ,其中,A和B是一维数组。

方法1:

def pysum():a = [0, 1, 2, 3, 4,]b = [9, 8, 7, 6, 5,]c = []for i in range(len(a)):c.append(a[i]**2 + b[i]**2)return cprint(pysum())

方法2:

import numpy as npdef npsum():a = np.array([0, 1, 2, 3, 4,])b = np.array([9, 8, 7, 6, 5,])c = a**2 + b**2return cprint(npsum())

对比方法1和方法2,我们可以得到:

• 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
• 设置专门的数组对象,经过优化,可以提升这类应用的运算速度
观察:科学计算中,一个维度所有数据的类型往往相同
•数组对象采用相同的数据类型,有助于节省运算和存储空间

ndarray是一个多维数组对象,由两部分构成:
• 实际的数据
• 描述这些数据的元数据(数据维度、数据类型等)
ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始

ndarry实例

ndarry在程序中的别名是:array,np.array()表示生成一个ndarray数组

如上:np.array()输出成[ ]形式,元素由空格分割

ndarray对象的属性:

轴(axis):保存数据的维度;秩(rank):轴的数量

实例:

ndarray数组的元素类型:

ndarray为什么要支持这么多种元素类型?
对比:Python语法仅支持整数、浮点数和复数3种类型
• 科学计算涉及数据较多,对存储和性能都有较高要求
• 对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能
• 对元素类型精细定义,有助于程序员对程序规模有合理评估

非同质的ndarray对象:

非同质的情况下,数组的各种属性已发生变化,与同质情况不同,不必去深究它。

非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用

更多内容请看numpy入门详细教程(二)

注:作者在慕课上跟随嵩天老师学习python数据分析课程,收获良多。以上是作者的学习笔记。

numpy入门详细教程(一)相关推荐

  1. python数据科学系列:numpy入门详细教程

    导读 python数据科学基础库主要是三剑客:numpy,pandas以及matplotlib,每个库都集成了大量的方法接口,配合使用功能强大.平时虽然一直在用,也看过很多教程,但纸上得来终觉浅,还是 ...

  2. Numpy入门详细教程

    大纲: 文章目录 大纲: 1.numpy基本使用 1.1读取数据 1.2创建数组 1.2.1使用array函数创建数组 1.2.2使用arange函数生产数组 1.2.3使用zeros函数生产全0数组 ...

  3. Pandas入门详细教程

    作者:luanhz 来源:小数志 导读 本文主要是对pandas进行入门详细介绍,通过本文你将系统性了解pandas为何会有数据分析界"瑞士军刀"的盛誉. 行文二级目录 01 关于 ...

  4. python数据科学系列:pandas入门详细教程

    导读 前2篇分别系统性介绍了numpy和matplotlib的入门基本知识,今天本文自然是要对pandas进行入门详细介绍,通过本文你将系统性了解pandas为何会有数据分析界"瑞士军刀&q ...

  5. spring入门详细教程(五)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  6. Spring入门详细教程(四)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  7. Spring入门详细教程(三)

    前言 本篇紧接着spring入门详细教程(二),建议阅读本篇前,先阅读第一篇和第二篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/101 ...

  8. Spring入门详细教程(二)

    前言 本篇紧接着spring入门详细教程(一),建议阅读本篇前,先阅读第一篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/1016553 ...

  9. ThinkJS框架入门详细教程(二)新手入门项目

    一.准备工作 参考前一篇:ThinkJS框架入门详细教程(一)开发环境 安装thinkJS命令 npm install -g think-cli 监测是否安装成功 thinkjs -v 二.创建项目 ...

最新文章

  1. 做动态图表没有数据?用Python就能获取
  2. opencv 通道分离合并
  3. 手机网页 右边的空白区
  4. Algorithm:机械优化设计的数学模型简介、常用优化方法、优化计算工具简介之详细攻略
  5. mysql有3个共同好友_共同好友mysql
  6. PHP怎么抛出错误,php – 从“正确”来源抛出错误
  7. 【已解决】离散数学项目工序表转换为网络图(完整步骤版)
  8. 1818 绝对差值和
  9. Python之xlsx文件转csv文件
  10. C++名称查找与ADL
  11. WIN10家庭版虚拟机启动蓝屏问题
  12. 3D MAX 2014学习地址
  13. skb_buff结构体解析
  14. fastq文件转化成bam文件
  15. Linux 系统 /var/log/journal/ 垃圾日志清理
  16. OGG12C安装与配置
  17. android 添加子view,如何在Android中向ImageView添加子视图
  18. [收藏]基于Spark Graphframes的社交关系图谱项目实战
  19. Elasticsearch集群原理、安装和基本使用
  20. android国外网站

热门文章

  1. 48V20Ah电池充满需用几度电?能跑多远?很多人还不知道
  2. 什么时候用GET,什么时候用POST
  3. 普中51单片机-步进电机启停、变速控制级速度显示
  4. SF09 | 资金流向交易策略源码,绩效突出,适应性兼容性强,5分钟短线交易模型;
  5. PHP常用六大设计模式
  6. 1.5V升压3V集成电路升压芯片
  7. 在3ds max中,利用normal map 制作精美骰子
  8. libhv教程13--创建一个简单的WebSocket客户端
  9. 入侵sf服务器技术_披荆斩棘:论百万级服务器反入侵场景的混沌工程实践
  10. ipvsadm 命令