入门numpy(上)【解读numpy官方文档】

您所在的位置:网站首页 numpy使用心得 入门numpy(上)【解读numpy官方文档】

入门numpy(上)【解读numpy官方文档】

#入门numpy(上)【解读numpy官方文档】| 来源: 网络整理| 查看: 265

前言

之前连载了pandas,pandas作为python做数据分析的一大利器,相信大家都不陌生。

当然连载部分作为入门是够了,具体提升还要大家多看看官方文档详细内容和做具体项目案例

之后我也会出一些pandas的数据分析实战案例分享给大家。

在询问了大家的意见和建议(怎么说的这么官方,不是我的风格啊)之后

我决定解读一下numpy的官方文档(入门部分)

让大家能够快速上手numpy

首先,我们看看官方是怎么介绍numpy的:

'''

NumPy是使用Python进行科学计算的基础软件包。 它包含以下内容:

(1)一个强大的N维数组对象

(2)复杂(广播)功能

(3)用于集成C / C ++和Fortran代码的工具

(4)非常有用的线性代数,傅里叶变换和随机数操作

(5)除了其明显的科学用途,NumPy也可以用作通用数据的高效多维容器。 可以定义任意数据类型。 这使NumPy能够无缝地,快速地与各种数据库集成。

'''

可能大家对"广播"一词不太了解,广播的意思可以这样理解,当我有两个维度不一样的array(数组)运算时,我可以用低维的数组复制成高维数组参与运算(因为运算要符合一定结构)

numpy官方网站:http://www.numpy.org/

开始numpy之旅

如果你是一个python初学者,我不建议你直接去python官网下载python3.X或是python2.7版本

我推荐你直接去anaconda官网下载对应版本的anaconda(建议下载最新的3.X版本)

下载地址:

https://www.continuum.io/downloads

如果你是windows用户,直接进入官网下载下图的即可

Clipboard Image.png

为什么推荐anaconda呢?

因为anaconda是python的集成环境,自带了很多python的库(或者认为是包)

举个栗子:

如果Python是一个光杆司令的话,anaconda则是一个司令带着一堆军队

so,你应该知道为什么我推荐你装anaconda了吧

如果你已经装了原生python并且用了挺久,也pip install 了很多库,类似numpy,scipy,pandas

那么你一定遇到很多报错,恭喜你,你已经才过了很多坑啦~就像我一样

有趣的是:

python是巨蟒的意思

anaconda是水蟒的意思

如果你在pip install numpy中由于网速慢安装报错,你可以来这里下载然后本地安装numpy

https://pypi.python.org/pypi/numpy#downloads

numpy快速入门官方文档:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

环境

python3.X

一颗栗子import numpy as np

如果没报错,恭喜你,numpy安装完成

这里是把numpy命名为np

可以说是行业潜规则,当然是为了之后写代码简写方便

a = np.arange(15).reshape(3, 5) a

Clipboard Image.png

注:这里的array(数组)是numpy中特有的类型,首先,使用np.arange(15)产生了一个一维数组,从0-14(注意范围)

arange不是arrange,arange是numpy的方法,所以写为np.arange()

然后,使用reshape()方法将这个产生的数组重新造型为3行5列的二维数组,也就有了上图的样子。

a.shape

Clipboard Image.png

注:查看数组格式,显示三行五列

a.ndim

Clipboard Image.png

注:显示数组的维数

如果你想知道这个方法的含义,可以在jupyter notebook (装完anaconda自带的ide编辑器)里输入:

?np.dim

Clipboard Image.pngClipboard Image.png

还有举例子帮你理解呢~

a.dtype.name

Clipboard Image.png

注:a数组中的数值类型

a.itemsize

Clipboard Image.png

注:每个数组元素的字节大小

a.size

Clipboard Image.png

注:a数组中的元素个数

type(a)

Clipboard Image.png

注:a的类型

b = np.array([6, 7, 8]) b

Clipboard Image.png

注:当然,你可以直接通过直接赋值创建一个数组

type(b)

Clipboard Image.png

创建数组使用array方法直接通过list(列表)创建数组import numpy as npa = np.array([2,3,4]) a

Clipboard Image.png

a.dtype

Clipboard Image.png

b = np.array([1.2, 3.5, 5.1])b.dtype

Clipboard Image.png

注:可以创建整形和浮点型元素的数组

常见错误:没有经过list直接用数列创建数组

Clipboard Image.png

b = np.array([(1.5,2,3), (4,5,6)]) b

Clipboard Image.png

注:创建二维数组

当然,创建数组的时候,也可以指明类型:

c = np.array( [ [1,2], [3,4] ], dtype=complex ) c

Clipboard Image.png

注:这里指定的是复数类型

np.zeros( (3,4) )

Clipboard Image.png

注:创建全零数组,默认为float64形式

np.ones( (2,3,4), dtype=np.int16 )

Clipboard Image.png

注:创建一个三维全1的数组,并且创建时指定类型

你可以认为是一个长方体里有序的充满了1

观察括号,有层次的

np.empty( (2,3) )

Clipboard Image.png

注:创建一个二维的空数组,电脑不同导致显示不同

使用arange创建arraynp.arange( 10, 30, 5 )

Clipboard Image.png

注:产生一个起始值为10,终止值为30(注意,终止值取不到),步长为5的数组

有点像c语言中的for循环格式

np.arange( 0, 2, 0.3 )

Clipboard Image.png

注:这里想说它接受float的值,不仅仅是int类型的值

当使用浮点参数时,由于有限的浮点精度,通常不可能预测获得的元素的数量。

 因此,通常最好使用函数linspace来接收我们想要的元素的数量作为参数,而不是使用步长参数:

from numpy import pinp.linspace( 0, 2, 9 )

Clipboard Image.png

注:产生0到2之间等间距(步长)的9个元素的数组,linspace和matlab中的用法一样

x = np.linspace( 0, 2*pi, 100 ) f = np.sin(x) f

注:在之前import了pi(π),现在相当于在0~2pi之间产生100个均匀的数字作为x

然后通过sin(x)算出对应的y,部分结果如下:

Clipboard Image.png

更详细的操作可以在这里看:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

就是下图这里,链接太多,就不一个个弄出来了

Clipboard Image.png

显示数组a = np.arange(6) print(a)

Clipboard Image.png

注:打印一维数组

b = np.arange(12).reshape(4,3) print(b)

Clipboard Image.png

注:打印二维数组

c = np.arange(24).reshape(2,3,4) print(c)

Clipboard Image.png

注:打印三维数组

更多reshape方法可以看这里:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html#quickstart-shape-manipulation

如果数组太大而无法全部打印,NumPy会自动跳过中央部分,只能打印出边界部分(首尾):

print(np.arange(10000))

Clipboard Image.png

print(np.arange(10000).reshape(100,100))

Clipboard Image.png

要禁用此省略并强制NumPy打印整个数组,您可以使用set_printoptions更改打印选项。

np.set_printoptions(threshold='nan')基本操作a = np.array( [20,30,40,50] ) b = np.arange( 4 ) b

Clipboard Image.png

c = a-b c

Clipboard Image.png

注:数组相减

b**2

Clipboard Image.png

注:b数组中每个元素平方

10*np.sin(a)

Clipboard Image.png

注:a数组先进行sin运算,然后结果乘10

a


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3