您当前的位置: 首页 >  Python

插件开发

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python-模块系列-numpy库(一)-n维数组矩阵运算-数组对象简单初始化-数据类型

插件开发 发布时间:2022-05-15 06:45:00 ,浏览量:1

文章目录
    • 1.概述
    • 2.数组基础
      • 2.1.数据标量类型
      • 2.2.数据结构化类型
    • 3.数组常用属性和方法
    • 4.创建数组
    • 5.作者答疑

1.概述

  NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:一个强大的N维数组对象 ndarray,广播功能函数,整合 C/C++/Fortran 代码的工具,线性代数、傅里叶变换、随机数生成等功能。numpy是python数字分析的基本套件之一。另外两个是SciPy(Scientific Python)和Matplotlib(绘图库)。

2.数组基础

  numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

序号参数及描述1object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。2dtype 数组的所需数据类型,可选。3copy 可选,默认为true,对象是否被复制。4order C(按行)、F(按列)或A(任意,默认)。5subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。6ndmin 指定返回数组的最小维数。 2.1.数据标量类型

  NumPy 支持比 Python 更多种类的数值类型。 下表罗列了 NumPy 中定义的不同标量数据类型。

序号数据类型及描述1bool_ 存储为一个字节的布尔值(真或假)2int_ 默认整数,相当于 C 的long,通常为int32或int643intc 相当于 C 的int,通常为int32或int644intp 用于索引的整数,相当于 C 的size_t,通常为int32或int645int8 字节(-128 ~ 127)6int16 16 位整数(-32768 ~ 32767)7int32 32 位整数(-2147483648 ~ 2147483647)8int64 64 位整数(-9223372036854775808 ~ 9223372036854775807)9uint8 8 位无符号整数(0 ~ 255)10uint16 16 位无符号整数(0 ~ 65535)11uint32 32 位无符号整数(0 ~ 4294967295)12uint64 64 位无符号整数(0 ~ 18446744073709551615)13float_ float64的简写14float16 半精度浮点:符号位,5 位指数,10 位尾数15float32 单精度浮点:符号位,8 位指数,23 位尾数16float64 双精度浮点:符号位,11 位指数,52 位尾数17complex_ complex128的简写18complex64 复数,由两个 32 位浮点表示(实部和虚部)19complex128 复数,由两个 64 位浮点表示(实部和虚部) 2.2.数据结构化类型

  可以在numpy中定义结构化的数据类型,可用numpy中的dtype函数构建,调用方式如下:

numpy.dtype(object, align, copy) 参数为: Object:被转换为数据类型的对象。Align:如果为true,则向字段添加间隔,使其类似 C 的结构体。 Copy: 生成dtype对象的新副本,如果为flase,结果是内建数据类型对象的引用。

  以下示例定义名为 student 的结构化数据类型,其中包含字符串字段name,整数字段age和浮点字段marks。 此dtype应用于ndarray对象。

#int8,int16,int32,int64 可替换为等价的字符串 'i1','i2','i4',以及其他。
import numpy as np 
student = np.dtype([('name','U20'),  ('age',  'i1'),  ('marks',  'f4')])
stu_array = np.array([('张三',  21,  50),('李四',  18,  75)], dtype = student)
print(stu_array);
3.数组常用属性和方法

  1.ndarray.shape:它返回一个包含数组维度的元组,它也可以用于调整数组大小。   2.ndarray.reshape() :它也是用来调整数组大小。与2.1的区别在于它返回一个调整shape后的数据结果,而原始数组本身没有改变。改变shape之后元素的个数不能改变,否则会报错。   3.ndarray.ndim:它返回数组的维数。范例代码如下所示:

import numpy as np 
a = np.array([[1,2,3],[4,5,6]])
print(a.shape)
a.shape = (3,2)
print(a.shape)
b=a.reshape(2,3);
print(b)
print(b.ndim);#结果:2
4.创建数组

  NumPy提供了灵活多样的构建数组的方式,empty函数创建指定形状和dtype的未初始化数组;zeros函数创建指定形状和dtype的零值数组;ones函数创建指定形状和dtype的一值数组;范例代码如下所示:

import numpy as np 
empty_array=np.empty((3,2),dtype=np.int);
ones_array=np.ones((3,2),dtype=np.int);
zeros_array=np.zeros((3,2),dtype=np.int);
eye_array=np.eye(3,dtype=np.int);#第一个必须为整数

  另外一个从普通python可迭代数据对象中转入数据的函数是numpy.asarray。它与numpy.array类似。调用形式如下:   numpy.asarray(a, dtype = None, order = None)   a:任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表   dtype:通常,输入数据的类型会应用到返回的ndarray   order:'C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组 【注意】从一维数组构建二维数组时注意元素个数对齐,否则构建为一维数组元组(列表)对象,采用二维索引时会报错。

5.作者答疑

如有疑问,敬请留言。

关注
打赏
1665481431
查看更多评论
立即登录/注册

微信扫码登录

0.0482s