python中的numpy库有什么优缺点_如何最简单、通俗地理解Python的numpy库?

目录:

一、笔记

二、我的自学路线

三、笔记目录

一、笔记

1) numpy 概念

① numpy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

② numpy是一个运行速度非常快的数学库,主要用于数组计算,包含:1. 一个强大的N维数组对象 ndarry

2. 广播功能函数

3. 整合 C/C++/Fortran 代码的工件

③ Anaconda自带numpy库,纯python开发环境要安装numpy库,用anaconda的原因是因为它自带了大多数我们常用的包了。

④ numpy最重要的一个特点是其N维"数组"对象ndarry,它是一系列 "同类型数据" 的集合,以0下标为开始进行集合中元素的索引。

⑤ ndarray对象是用于存放同类型元素的多维数组。

⑥ ndarray中每个元素在内存中都有相同存储大小的区域。

import numpy as np

a = np.array([[1,2,3],[4,5,6]])

print(a)

print(a.ndim) # ndarry维度

print(a.shape) # ndarry形状

print(a.size) # ndarry元素个数

print(a.dtype) # ndarry元素类型

运行结果:

[[1 2 3]

[4 5 6]]

2

(2, 3)

6

int32

import numpy as np

a = np.array([[[1,2,3],[4,5,6]]])

print(a)

print(a.ndim) # ndarry维度跟最外层括号[]有关

# 第一个括号去掉,有一个元素,所以第一维为1,第二个括号去掉有两个元素,所以第二维为2

print(a.shape)

print(a.size)

print(a.dtype) # a中元素为int32

运行结果:

[[[1 2 3]

[4 5 6]]]

3

(1, 2, 3)

6

int32

import numpy as np

a = np.array([[[1,2,3,8],[4,5,6]]])

print(a) # 当不同长度时,np.array会将里面的数组转换为列表

print(a.ndim) # 只有两维,存的的是两个列表,所以减少一维

print(a.shape)

print(a.size)

print(a.dtype) # a中元素为对象了

运行结果:

[[list([1, 2, 3, 8]) list([4, 5, 6])]]

2

(1, 2)

2

object

import numpy as np

a = np.array([[[1,2.0,3],[4,5,6]]]) # 有一个浮点型 2.0

print(a) # 全部变为浮点型了

print(a.ndim)

print(a.shape)

print(a.size)

print(a.dtype) # 变为浮点型数据了

运行结果:

[[[1. 2. 3.]

[4. 5. 6.]]]

3

(1, 2, 3)

6

float64

2) numpy 数据类型

① 创建numpy数组的时候可以通过属性dtype显示指定数据的类型。

② 在不指定数据类型的情况下,numpy会自动推断出适合的数据类型。

③ 如果需要更改一个已经存在的数组的数据类型,可以通过astype方法进行修改从而得到一个新数组。

a2 = np.array([1,2,3,4]) # 自动推断出合适的数据类型,里面无浮点数,变为int32

print(a2.dtype)

a3 = a2.astype(float) # astype得到的是一个新数组,原数组没有改变。

print(a2.dtype)

print(a2)

print(a3.dtype)

print(a3)

运行结果:

int32

int32

[1 2 3 4]

float64

[1. 2. 3. 4.]

3) numpy 常用方法

① arange()函数:类似python的range函数,通过指定开始值、终值和步长来创建一个一维数组,注意:最终创建的数组不包含终值。

② linspace()函数:通过指定开始值、终值和元素个数来创建一个一维数组,数组的数据元素符合等差数列,可以通过endpoint关键字指定是否包含终值,默认包含终值。

③ logspace()函数:和linspace函数类似,不过创建的是等比数列数组。

④ random()函数:创建0-1之间的随机元素,数组包含的元素数量由参数决定。

import numpy as np

x = np.empty([3,2],dtype = np.int) # 产生3行2列的二维数组,数组中每个元素都是随机数

x

运行结果:

array([[ 757935392, 757935405],

[ 17073284

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们在使用 Python 进行开发时,为了方便重复使用代码,我们会将相关的代码进行组织、封装,这里涉及了四个概念:模块、类、包和库。 1. 模块:简单来说,就是 Python 的一个文件,它包含了 Python 定义和声明的函数、变量和类等内容。Python 的许多功能都是通过模块实现的,如 os 模块、random 模块等。使用模块可以让代码更好地组织和共享,避免重复编写,方便维护和修改。 2. 类:是一种用户自定义的类型,它由方法和属性组成。类可以看作是一种数据类型的模板,利用它可以创建多个具有相同属性和行为的对象。类在 Python 是一种重要的面向对象编程的特性。 3. 包:是一种组织模块的方式,将模块以文件夹嵌套的方式进行组织。一个包可以包含其他模块或子包,通常还会包含一个__init__.py 文件。__init__.py 文件可以用来初始化包的属性和方法等信息,也可以将包需要导入的模块进行声明。 4. 库:是一种可重用的代码集合,通常包含多个模块和包。库可以让开发者方便地使用各种由其他人编写的函数和类来实现自己的程序,比如在 Python 常用的库有 NumPy 和 Pandas 等。这些库通过提供各种功能的接口使得开发者可以更加方便地进行数据处理和分析等操作。 总之,模块、类、包和库都是 Python 代码组织的重要结构,掌握它们的使用和概念可以让我们更好地编写 Python 代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值