数据分析工具pandas总结

Numpy简介

Numpy:Numerical Python ,即数值Python包,是Python进行科学计算一个基础包。包括:

一个具有矢量运算和复杂广播能力的快速且节省空间的多维数组,称为ndarray(N-dimensional array object);

用于对数组数据进行快速运算的标准科学函数,ufunc(unviersal function object);

用于整合c/c++和fortran代码的工具包;

实用的线性代数,博里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。

Numpy的数据结构:ndarray

ndarray介绍

ndarry:N维数组

一种相同类型元素组成的多维数组,元素数量是事先指定好的。

元素的数据类型由dtype(data-type)对象来指定,每个ndarry只有一种dtype。

大小固定,创建好数组时一旦指定好大小,就不会再发生改变。

Numpy的基本操作

array函数接收一个普通的python序列,转成ndarry

导入numpy包

import numpy as np

创建一个二维数组

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

查看数组的维度(打印结果2)

narr.ndim

查看数组深度和维度打印结果(2L,4L)

narr.shape

查看数组的数据类型,返回结果(dtype(‘int32’))

narr.dtype

|代表分割,4代表保留4位。打印结果array([‘aaaa’,’java’,’pyth’])

np.array([‘aaaaa’,’java’,’python’],dtype=’|s4′)

数组中的数据类型转换,指定为int类型,即使数组中元素为字符串也会自动转换为int。打印结果array([1,2,3])

np.array([‘1′,’2′,’3′],dtype=’int’)

查看数组中的元素个数,返回结果8.

narr.size

利用shape查看复杂维度的数组。

np.array([

[1,2,3,4],

[5,6,7,8]

[3,4,5,6],

[2,2,2,2]

print(arr.shape) #打印结果(2,2,4) shape 打印结果对应每个维度的深度值,有三个维度,分别对应2,2,4的深度值

print(arr[1,0,1]) #打印结果4

ndarry的常见创建方式

zeros函数创建指定长度或形状的全0函数

np.zeros((3,4),np.int)

打印结果:

array([[0, 0, 0, 0],

[0, 0, 0, 0],

[0, 0, 0, 0]])

ones函数创建指定长度或形状的全1数组,同上,填充值为1的数组

empty函数创建一个没有任何具体值的数组(准确的说是一些未初始化的随机值)

range() 和py.arange

range()返回的是range object,而np.nrange()返回的是numpy.adarray()

两者都是均匀地(evenly)等分区间;

range尽可用于迭代,而np.arange作用远不止于此,它是一个序列,可被当做向量使用。

range()不支持步长为小数,np.arange()支持步长为小数

两者都可用于迭代

两者都有三个参数,以第一个参数为起点,第三个参数为步长,截止到第二个参数之前的不包括第二个参数的数据序列

某种意义上,和STL中由迭代器组成的区间是一样的,即左闭右开的区间。[first, last)或者不加严谨地写作[first:step:last)

np.linspace() 生成等差数列

第一个参数值代表起始位置,第二个参数值代表结束位置,第三个参数值代表元素个数

np.linspace(2,19,3)

运行结果:array([ 2. , 10.5, 19. ])

np.logspace() 生成10的幂形式的等比例数列

第一个参数代表10的开始次方,第二个参数代表10的结束次方,第三个参数代表生成的元素个数。

np.logspace(2,10,3)

输出结果:array([1.e+02, 1.e+06, 1.e+10]) #1.e是科学计数法,代表10的次方

np.reshape()维度转化

np.arange(1,9).reshape((2,4)) #将[1,2,3,4,5,6,7,8]转为一个二个维度的数组

输出array([[1, 2, 3, 4],[5, 6, 7, 8]])

np.arange(1,9).reshape((2,2,2)) #转化成一个三个维度的数组

生成随机数组

np.random.random((2,3,4)) #生成0-1之间的随机数组

==arr.astype()==对数组数据类型进行转换

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

arr.astype(‘float’) #转换数组里的数据为float类型

arr.dtype #查看数组数据类型

常见的数据类型

名称 描述

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 位浮点数(实数部分和虚数部分)

一些类型的缩写

名称 描述

b 布尔型

i (有符号) 整型

u 无符号整型 integer

f 浮点型

c 复数浮点型

m timedelta(时间间隔)

M datetime(日期时间)

O (Python) 对象

S, a (byte-)字符串

U Unicode

V 原始数据 (void)

矩阵相乘和矩阵积

在numpy中矩阵可以直接做加减乘除运算

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

arr2 = np.array([2,3,4,5])

arr1*arr2则为对位相乘

矩阵积np.dot(a, b)

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

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

np.dot(a,b)

输出结果:array([[ 19, 22, 41],

[ 43, 50, 95],

[139, 162, 311]])

解释:例如

[a1,b1,c1],

[d1,e1,f1]

[a2,b2],

[d2,e2],

[f2,g2]

做点积运算则:

[a1a2+b1 * d2+c1 f2,a1b2+b1e2+c1f2],

[d1a2+e1d2+f1f2 , d1b2+e1e2+f1*g2]

Original: https://blog.csdn.net/weixin_55107651/article/details/123312290
Author: NICEXICHEN
Title: 数据分析工具pandas总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/700029/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球