python数值计算_python数值计算模块——NumPy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

一个强大的N维数组对象 ndarray

广播功能函数

整合 C/C++/Fortran 代码的工具

线性代数、傅里叶变换、随机数生成等功能

数组属性

本章节我们将来了解 NumPy 数组的一些基本属性。

NumPy 数组的维数称为秩(rank),一维数组的秩为 1,二维数组的秩为 2,以此类推。

在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴(axis),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。

很多时候可以声明 axis。axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作。

NumPy 的数组中比较重要 ndarray 对象属性有:

1

2

3

4

5

6

7

8

9ndarray.ndim秩,即轴的数量或维度的数量

ndarray.shape数组的维度,对于矩阵,n 行 m 列

ndarray.size数组元素的总个数,相当于 .shape 中 n*m 的值

ndarray.dtypendarray 对象的元素类型

ndarray.itemsizendarray 对象中每个元素的大小,以字节为单位

ndarray.flagsndarray 对象的内存信息

ndarray.realndarray元素的实部

ndarray.imagndarray 元素的虚部

ndarray.data包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。

数组的维数

array.ndim #2

1

2

3

4

5import numpy as np

array = np.array([

[1,2,3],

[2,3,4]

])

数组的形状

相当于几行几列

array.shape #2,3

数组的元素个数

array.size # 6

数组的元素数据类型

关于numpy中的数据类型,罗列如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19bool_布尔型数据类型(True 或者 False)

int_默认的整数类型(类似于 C 语言中的 long,int32 或 int64)

intc与 C 的 int 类型一样,一般是 int32 或 int 64

intp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)

int8字节(-128 to 127)

int16整数(-32768 to 32767)

int32整数(-2147483648 to 2147483647)

int64整数(-9223372036854775808 to 9223372036854775807)

uint8无符号整数(0 to 255)

uint16无符号整数(0 to 65535)

uint32无符号整数(0 to 4294967295)

uint64无符号整数(0 to 18446744073709551615)

float_float64 类型的简写

float16半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位

float32单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位

float64双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位

complex_complex128 类型的简写,即 128 位复数

complex64复数,表示双 32 位浮点数(实数部分和虚数部分)

complex128复数,表示双 64 位浮点数(实数部分和虚数部分)

array.dtype # int32

数据每个元素的大小

array.itemsize #4 这里是因为int32占四个字节

数组的内存信息

array.flags

1

2

3

4

5

6

7C_CONTIGUOUS : True

F_CONTIGUOUS : False

OWNDATA : True

WRITEABLE : True

ALIGNED : True

WRITEBACKIFCOPY : False

UPDATEIFCOPY : False

数组的每个元素的实部大小

array.real

这里我们的每个数据都是实数1

2

3[[1 2 3]

[2 3 4]]

数组的每个元素的虚部大小1

2

3

4

5array.imag

[[0 0 0]

[0 0 0]]

数组的创建

numpy.empty

创建空数组:empty(shape, dtype=float, order=’C’)

shape:空数组的行列

dtype:每个元素的数据类型

order:优先顺序,可以不予关注

1

2

3

4

5x = np.empty([3,2],dtype=int,order='F')

[[ 0 1072693248]

[1072693248 0]

[ 0 1072693248]]

numpy.zeros创建指定大小的数组,以0填充

x= np.zeros([2,2],dtype=np.int) 两行两列的0数组

numpy.zeros创建指定大小的数组,以0填充

x= np.zeros([2,2],dtype=np.int) 两行两列的0数组

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

numpy.ones(shape, dtype = None, order = ‘C’)

numpy从已有数组创建数组numpy.asarray1

2

3

4

5

6

7

8

9

10numpy.asarray

numpy.asarray 类似 numpy.array,但 numpy.asarray 只有三个,比 numpy.array 少两个。

numpy.asarray(a, dtype = None, order = None)

参数说明:

参数描述

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

dtype数据类型,可选

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值