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

菜鸟数据科学入门03 - NumPy 数组基础和基本 *** 作,第1张

回顾:

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

需求:根据已有的多个列表,利用numpy.array()函数创建三维以上数组

格式概述: 每一维用一个 [] 括起,不同维之间用 , 逗号间隔,最后总体再用 [] 括起!!!

说明 :列表肯定是一维的,多个列表一行一行堆叠形成二维,多个这样的二维构成三维,以此类推可得更高维矩阵(一般3维以上就不用numpy.array()这种方法创建了)。

注意 :高维数组,以三维(5,2,3)为例:前面的5代表页数,即表示(2,3)这样的二维矩阵有5个。即: 前面的数,永远代表比它"低一维"的数组有多少个

(1)创建二维数组的例子:

(2)创建三维数组的例子1:(2,3,3)

(3)创建三维数组的例子2:(4,2,3)

补充:最快验证自己创建的数组是否满足自己的维度需求的方式,就是看打印的结果中, 最外面有几个 ] 中括号,有几个 ] 就是几维数组 !如本文中第3个例子,打印结果最外层有3个 ],说明满足3维的要求。

用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组

shape 数组形状

dtype 数据类型,可选

order 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序

注意: 数组元素为随机值,因为它们未初始化

创建指定大小的数组,数组元素以 0 来填充

创建指定形状的数组,数组元素以 1 来填充

从已有的数组创建数组

a 任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组

dtype 数据类型,可选

order 可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序

用于实现动态数组,接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象

buffer 可以是任意对象,会以流的形式读入。

dtype 返回数组的数据类型,可选

count 读取的数据数量,默认为-1,读取所有数据。

offset 读取的起始位置,默认为0

注意: buffer 是字符串的时候,Python3 默认 str 是 Unicode 类型,所以要转成 bytestring 在原 str 前加上 b

从可迭代对象中建立 ndarray 对象,返回一维数组

iterable可迭代对象

dtype 返回数组的数据类型

count 读取的数据数量,默认为-1,读取所有数据

根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray

start 起始值,默认为0

stop终止值(不包含)

step步长,默认为1

dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型

用于创建一个一维数组,数组是一个等差数列构成的

start 序列的起始值

stop序列的终止值,如果endpoint为true,该值包含于数列中

num 要生成的等步长的样本数量,默认为50

endpoint该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。

retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。

dtype ndarray 的数据类型

用于创建一个于等比数列

start 序列的起始值为:base ** start

stop序列的终止值为:base ** stop。如果endpoint为true,该值包含于数列中

num 要生成的等步长的样本数量,默认为50

endpoint该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。

base对数 log 的底数。

dtype ndarray 的数据类型


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11653504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存