0
点赞
收藏
分享

微信扫一扫

py-爬虫-numpy函数

星河出山 2022-04-24 阅读 91
python

1.入门

numpy介绍(终极目的:读取文件数字数据进行处理,文字处理用pandas(后面讲))NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。

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

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

广播功能函数 整合

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

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

numpy安装

pip install numpy

验证

>>>from numpy import *

>>> eye(4)

array([[1., 0., 0., 0.],

        [0., 1., 0., 0.],

        [0., 0., 1., 0.],

[0., 0., 0., 1.]])

NumPy Ndarray 对象

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。 ndarray 对象是用于存放同类型元素的多维数组。 ndarray 中的每个元素在内存中都有相同存储大小的区域。

ndarray 内部由以下内容组成:

一个指向数据(内存或内存映射文件中的一块数据)的指针。

数据类型或 dtype,描述在数组中的固定大小值的格子。

一个表示数组形状(shape)的元组,表示各维度大小的元组。

一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。

ndarray 的内部结构:

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

名称:        描述:

object        数组或嵌套的数列

dtype        数组元素的数据类型,可选

copy        对象是否需要复制,可选

order        创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)

subok        默认返回一个与基类类型一致的数组

ndmin    指定生成数组的最小维度

实例1

import numpy as np

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

print (a) [1 2 3]

实例2

# 多于一个维度  

import numpy as np

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

print (a) [[1  2]  [3  4]]

实例3

# 最小维度  

import numpy as np

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

print (a) [[1 2 3 4 5]]

实例4:复数矩阵

# dtype 参数  

import numpy as np

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

print (a) [1.+0.j 2.+0.j 3.+0.j]

numpy数据类型

名称    描述

bool_    布尔型数据类型(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 位浮点数(实数部分和虚数部分)

数据类型对象 (dtype)

数据类型对象(numpy.dtype 类的实例)用来描述与数组对应的内存区域是如何使用,它描述了数据的以下几个方面:

数据的类型(整数,浮点数或者 Python 对象)

数据的大小(例如, 整数使用多少个字节存储)

数据的字节顺序(小端法或大端法)

在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分

如果数据类型是子数组,那么它的形状和数据类型是什么。

字节顺序是通过对数据类型预先设定 < 或 > 来决定的。 < 意味着小端法(最小值存储在最小的地址,即低位组放在最前面)。> 意味着大端法(最重要的字节存储在最小的地址,即高位组放在最前面)。

实例 1

import numpy as np

# 使用标量类型

dt = np.dtype(np.int32)

print(dt)

实例 2

import numpy as np

# int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替

dt = np.dtype('i4')

print(dt)

实例 3

import numpy as np

# 字节顺序标注

dt = np.dtype('<i4')

print(dt)

实例 4 # 首先创建结构化数据类型

import numpy as np

dt = np.dtype([('age',np.int8)])

print(dt)

实例 5

# 将数据类型应用于 ndarray 对象

import numpy as np

dt = np.dtype([('age',np.int8)])

a = np.array([(10,),(20,),(30,)], dtype = dt)

print(a)

实例 6

# 类型字段名可以用于存取实际的 age 列

import numpy as np

dt = np.dtype([('age',np.int8)])

a = np.array([(10,),(20,),(30,)], dtype = dt)

print(a['age'])

实例 7

import numpy as np

student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])

print(student)

实例 8

import numpy as np

student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student)

print(a)

举报

相关推荐

Py记4(NumPy计算库

numpy函数

Py学习 函数

py函数介绍

numpy cumsum函数

网络爬虫Python+numpy

0 条评论