菜鸟数据科学入门03 - NumPy 数组基础和基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟数据科学入门03 - NumPy 数组基础和基本操作相关的知识,希望对你有一定的参考价值。

参考技术A 回顾:

NumPy 是一个用于科学计算的基础 Python 库( 安装说明 )。它可以让你在 Python 中使用向量和数学矩阵,以及许多用 C 语言实现的底层函数。

在 Notebook 中导入 NumPy:

数组是将数据组织成若干个维度的数据块。

NumPy 的核心是数组(arrays)。

用 array 创建数组

在 NumPy 数组中,数据类型需要一致,否则,会尝试「向上兼容」,比如生成一个包含浮点数的数组,输出时每个元素都变成了浮点型:

NumPy 还可以用循环生成数组:

用 full 生成一个 3 行 5 列的数组:

用 arange 等距填充数组:

(arange 是 Python 内置函数 range 的数组版,返回的是一个 ndarray 而不是 list)

用 linspace 线性填充数组:

用 random 生成随机数组:

btw 数组索引从 0 开始

NumPy 中的切片语法: x[start:stop:step] ,如果没有赋值,默认值 start=0, stop=size of dimension, step=1。

(上图最后一个图形,arr[1, :2] 应该是 (1,2) 一行二列矩阵??)

复制数组切片

reshape:

转置(transpose)是重塑(reshape)的一种特殊形式,返回源数据的视图而不进行复制。

用 concatenate 连接数组:

用 vstack 合并到数据行, hstack 合并到数据列

拆分数组的函数包括: np.split , np.hsplit, np.vsplit

传递给数组一个与它有关的条件式,然后它就会返回给定条件下为真的值。

在生成图形时也非常好用:

在程序中用条件式选择了图中不同的点。蓝色的点(也包含图中的绿点,只是绿点覆盖了蓝点),显示的是值大于零的点。绿点显示的是值大于 0 小于 Pi / 2 的点。

当不同 shape 的数组进行运算(按位加/按位减的运算,而不是矩阵乘法的运算)时,(某个维度上)小的数组就会沿着(同一维度上)大的数组自动填充。广播虽然是一个不错的偷懒办法,但是效率不高、降低运算速度通常也为人诟病。

广播的原理(via Broadcast Visualization ):

以上是关于菜鸟数据科学入门03 - NumPy 数组基础和基本操作的主要内容,如果未能解决你的问题,请参考以下文章

科学计算基础软件包NumPy入门讲座:创建数组

科学计算基础软件包NumPy入门讲座:操作数组

科学计算基础软件包NumPy入门讲座:概述

科学计算基础软件包NumPy入门讲座:基本概念

Numpy科学计算从放弃到入门

科学计算基础软件包NumPy入门讲座:掩码数组