本章重点内容:

1、NumPy ndarray:多维数组对象

  1)生成ndarry

  2)ndarray的数据类型

  3)NumPy数据算术

  4)基础索引与切片

  5)布尔索引

  6)数组转置和换轴

2、通用函数:快速的逐元素数组函数

3、使用数组进行面向数组编程

4、使用数组进行文件输入和输出

5、伪随机数生成

6、示例:随机漫步

接下来展开详细说明,如下

1、NumPy ndarray:多维数组对象

NumPy,是Numerical Python的简称,它是目前Python数值计算中最为重要的基础包,大多数计算包都提供了基于NumPy的科学函数功能,将NumPy的数组对象作为数据交换的通用语

首先看下NumPy的简单使用,如下:

导入numpy进行使用,随机生成2行3列数字,然后可以进行一些数学操作,例如相乘、相加,如下:

一个ndarray是一个通用的多维同类数据容器,每个数组都有一个shape属性,表示纬度的数量,都有一个dtype属性,表示数据类型,如下:

1)生成ndarry

最简单的就是使用array函数,可以将不同的列表转换为数组,如下:

一般来说,针对同等长度的列表,会自动转换为多维数组,

可以通过arange生成数组,类似Python中的range,如下

2)ndarray的数据类型

前面我们说过,每个数组都会有一个数据类型的属性,在创建数组时,可以声明不同的数据类型,如下:

可以使用astype方法显示的转换数组的数据类型,如下:

如果字符串表示数字的含义,也可以通过astype转换成数字,如下:

3)NumPy数据算术

数组之所以重要事因为他允许进行批量操作而无需任何for循环,在NumPy中,这个特性成为向量化,算术操作都会针对数组逐个元素进行,如下:

两个数组间也可以进行比较,会产生一个布尔值数组,如下:

4)基础索引与切片

一维数组的索引和切片,和Python中的列表相似,如下:

有一个特别要区别的地方,就是数组的切片是原数组的视图,不是复制数据,所以对切片的修改都会反应到原数组上

可以针对二维及更多纬度的数组进行切片,如下,二维数组示例:

可以进行更多纬度更灵活的切片,如下:

5)布尔索引

假如我们有两个数组,一个数组是名字,另一个名字数组是数据,每个名字对应另一个数组中对应每行的数据,可以通过布尔索引相关数据,代码示例如下:

首先,创建一个名字的数组,然后随机产生对应的数据,如下:

可以直接对数据进行比较操作,如下:

在索引数组时可以传入布尔数组,如下:

可以选择除bob之外的数据,如下:

其中符合【~】表示取反的意思

6)数组转置和换轴

转置是一种特殊的数据重组形式,可以通过transpose方法和特殊的T属性实现,如下:

在计算矩阵内积的时候,会用到转置,计算内积的方法是【.dot】,代码示例如下:

2、通用函数:快速的逐元素数组函数

这里的通用函数,是指对一个数组或者多个数组进行的函数运算,例如取根号,最大值比较,具体代码示例如下:

3、使用数组进行面向数组编程

将条件逻辑作为数组操作

numpy.where函数是三元表达式【x if condition else y】的向量化版本

如果有一个布尔数组和两个数值数组,根据布尔数组来选择另外两个数组,用该办法操作如下:

可以对一个数组内符合条件的内容进行替换操作,如下:

数学和统计方法

对数组内数据就和以及求均值,都可以很方便的实现,如下:

排序

数组也可是使用sort方法进行位置排序,如下:

针对多维数组,可以指定轴向进行排序,如下:

唯一值

可以通过nuique方法计算数组内的唯一值,去除重复的内容,例如前面中提到的姓名的数组,具体代码示例如下:

4、使用数组进行文件输入和输出

通过save和load方法来进行存取操作,具体代码示例如下:

存入数据:文件格式会默认为npy

读取数据:一定要写出后缀

5、伪随机数生成

前面的示例中已经看到和用到来random的函数,来随机生产数据,他也可以高效多种概率分布下的完整样本值数组,例如使用normal获得4X4正态分布样本数组,如下:

6、示例:随机漫步

本文为作者手打原创,如有引用请取得作者同意

说明:本章内容基于《利用Python 进行数据分析 第二版》内容学习整理

numpy列相加_Python数据分析入门:NumPy基础:数组与向量化计算相关推荐

  1. numpy数组按某一维度相加_Python数据分析之NumPy(高级篇)

    ​ 一些更高级的ndarray处理 where和一些其他的逻辑运算 np.where(cond,x,y):满足条件(cond)输出x,不满足输出y x_arr = np.array([1.1, 1.2 ...

  2. python numpy读取数据_Python数据分析之numpy学习(一)

    文|刘顺祥 Python是一门不错的动态语言,其应用的领域非常广泛,如web开发.Linux运维.数据挖掘.机器学习.爬虫.推荐系统等.在学完<廖雪峰Python2.7教程>感觉受益匪浅, ...

  3. python numpy库作用_python数据分析之numpy库

    一.numpy概述 numpy(Numerical Python)提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速.节省空间.numpy支持高级大量的维度数组与矩阵运算, ...

  4. pandas 每一列相加_Python数据分析——Pandas 教程(上)

    Python 在数据分析领域里是一门非常强大的语言,在数据分析方面有着出色的生态系统.Pandas 包就是其中之一,它的主要特点是导入和分析数据非常的容易,Pandas 类似 Numpy.Matplo ...

  5. Numpy基础:数组和矢量计算-笔记与代码

    本文是对<利用python进行数据分析>第四章,"Numpy基础:数组和矢量计算"的一个回顾性阅读笔记,对于代码已经加上自己的部分注释.  Numpy这章主要是将数据的 ...

  6. python基础一入门必备知识-Python数据分析入门必备基础知识

    今天,老师要带大家解数据分析的定义.核心思路.应用领域以及开发流程,向大家全方位展示数据分析入门必备基础知识,全都是干货哦!虽然看完本文,不能让大家立马变身为一名数据分析师,但是能让大家对数据分析有一 ...

  7. Python数据分析入门--Numpy基础学习笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 NumPy基础 1.NumPy nadarray:多维数组对象 1.1ndarray及其数据类型 1.2NumPy数组 ...

  8. python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

    Python数据分析之Numpy学习 2 -- NumPy 基础学习 NumPy(Numerical Python)是高性能科学计算和数据分析的基础包.NumPy的主要对象是同构数据多维容器(homo ...

  9. numpy 是否为零_python数据分析入门必刷!100道题掌握numpy

    numpy-100 可以说是炒鸡经典的numpy学习资料了-原项目地址:numpy-100 各路大神提供的中文译版也有很多,不过为了巩固自己的学习成果,我还是自己进行了翻译+刷题+总结.对于每道题,均 ...

最新文章

  1. 2018牛客网暑期ACM多校训练营第二场 D - money(贪心)
  2. 每日程序C语言27-矩阵对角线求和
  3. 4行代码AC——L1-024 后天(5分)
  4. HTML5响应式吸塑包装定制塑胶制品类织梦模板
  5. java显示文件_java 显示文件夹结构
  6. mysql5.6.20安装详解_MySql 5.6.20 安装 使用
  7. 创造与魔法最新服务器怎么进,创造与魔法进不了服务器 | 手游网游页游攻略大全...
  8. 有序二叉树c语言,二叉搜索树(BST)的实现(C语言)(原创)
  9. red hat 5.5 vncserver搭建
  10. 09、win32 转换为 store app
  11. 【渝粤教育】国家开放大学2018年春季 0689-21T老年心理健康 参考试题
  12. L2-004 这是二叉搜索树吗? (25分)*
  13. 简单聊聊嵌入式软件测试
  14. 微创器械行业调研报告 - 市场现状分析与发展前景预测
  15. 利用OpenStreetMap获取城市路网数据
  16. 【重磅消息】微信可以改名了
  17. 组合数学(二)排列数和组合数
  18. 数据仓库十大主题;TeraData金融数据模型
  19. Linux内核LED模块分析(二)
  20. YOLOV3在windwos下的配置和训练过程简述

热门文章

  1. 16道关于Python基础方面的练习题
  2. Python3.8 新特性:赋值表达式
  3. python之super
  4. web前端入门学习 css(10)移动端布局(学到DPG格式图片与webp格式图片停了)
  5. 计算机中 什么是同步执行和异步执行?
  6. tensorflow-yolov3 yunyang1994 image_preporcess(image, target_size, gt_boxes=None)函数 image_preprocess
  7. adb logcat 保存_adb命令——日志命令详解——全部输出到桌面: adb logcat c:\users\del\desktop\log.txt...
  8. 浙江高考艺术类2021年成绩查询,2021年浙江美术高考成绩查询网址:https://www.zjzs.net/...
  9. python土木_土木和结构工程师用Python-Python for civil and structural engineers
  10. Redis 的缓存异常处理 —— 缓存雪崩、缓存击穿、缓存穿透