菜鸟数据科学入门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 数组基础和基本操作的主要内容,如果未能解决你的问题,请参考以下文章