numpy 模块和 pandas 模块

一、numpy模块

1.1 numpy 简介

numpy是python的一种开源的数值计算扩展库,这种库可用来存储和处理大型numpy数组。

numpy库有两个作用:

? 1、区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型

? 2、计算速度快,甚至要优于python内置的简单运算,使得其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似。

1.2 创建numpy数组

numpy数组即numpy的ndarray对象,创建numpy数组就是把一个列表传入np.array()方法

import numpy as np 

# 创建一维的ndarray对象
arr =np.array([1,2,3])
print(arr,type(arr))   # [1 2 3] <class 'numpy.ndarray'

# 创建二维的ndarray对象
print(np.array([[1,2,3],[4,5,6]]))  

--------------------------------------------------------------------------------
[[1 2 3]
 [4 5 6]]

1.3 numpy数组的常用属性

属性 解释
T 数组的转置(对高维数组而言)
dtype 数组元素的数据类型
size 数组元素的个数
ndim 数组的维数
shape 数组的维度大小(以元组形式)
astype 类型转换
arr = np.array([[1,2,3],[4,5,6]])
print(arr.T)  # 行与列互换
--------------------------------------------------------------------------------
[[1 4]
 [2 5]
 [3 6]]

1.4 切片

arr = np .array([[1,2,3],[4,5,6]])
print(arr[:])  # 取出数组所有元素
print(arr[:,:]) # 取出数组所有元素
print(arr[0,:]) # 取出第0行到第一行的数组
print(arr[0:1,:])  # 取出第0行到第一行的数组,顾头不顾尾
print(arr[0:1,0:1])  # 取出第0行到第一行,第0列到第一列的数组,顾头不顾尾
print(arr[0, 0],type(arr[0, 0]))   #取出第0行到第一行,第0列到第一列的数,输出数组类型
print(arr[0, [0,2]])   #取出第0行第0个元素和第2个元素   [1 3]
print(arr[0, 0] + 1)  #取出第0行第0列的元素加1  2

1.5 取值

arr = np.array([[1, 2, 3], [4, 5, 6]])
arr[0, :] = 0    #将第0行的元素全部变为0
print(arr)
--------------------------------------------
[[0 0 0]
 [4 5 6]]

arr[1, 1] = 1  #将第一行第一列的数字改为1
print(arr)
--------------------------------------------------------------------------------
[[0 0 0]
 [4 1 6]]

arr[arr < 3] = 3  # 布尔取值   将小于3的数字全部变为3
print(arr)
--------------------------------------------------------------------------------
[[3 3 3]
 [4 3 6]]

1.6 合并

arr1 = np.array([[1, 2, 3], [4, 5, 6]])  # 可变数据类型
arr2 = np.array([[7, 8, 9], [10, 11, 12]])  # 可变数据类型
-------------------------------------------------------
[[1 2 3]
 [4 5 6]]
[[ 7  8  9]
 [10 11 12]]

print(np.hstack((arr1,arr2)))  # 行合并
------------------------------------------------------------
[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]

print(np.vstack((arr1,arr2)))  # 列合并
------------------------------------------------
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]

print(np.concatenate((arr1, arr2)))  # 默认列合并
print(np.concatenate((arr1, arr2),axis=1))  # 1表示行;0表示列
-----------------------------------------------------------
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]

1.7 通过函数创建numpy数组

方法 详解
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版,支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype创建全0数组 np.zeros((5, 5))
ones() 根据指定形状和dtype创建全1数组 np.ones((5, 5))
eye() 创建单位矩阵(对角线上的 数字为1)
empty() 创建一个元素全随机的数组
reshape() 重塑形状

1.7 numpy数组运算

运算符 说明
+ 两个numpy数组对应元素相加
- 两个numpy数组对应元素相减
* 两个numpy数组对应元素相乘
/ 两个numpy数组对应元素相除,如果都是整数则取商
% 两个numpy数组对应元素相除后取余数
**n 单个numpy数组每个元素都取n次方,如**2:每个元素都取平方

1.9 额外了解

numpy随机数

print(np.random.rand(3,4))  #随机生成一个3*4的数组

print(np.random.randint(1,10,(3,4))) # 最小值1,最大值10,3*4

print(np.random.choice([1,2,3,4,5],3))   #随机生成一个元素为3个的数组,数组元素在[1,2,3,4,5]内

重点

随机数种子:所有的随机数是按照随机数种子生成的

时间短则不变,时间长就变

np.random.seed(int(time.time()))
np.random.seed(1)   #如果固定了就不会变
arr1 = np.random.rand(3,4)  # 可变数据类型
print(arr1)
rs = np.random.RandomState(1)  #产生一个随机状态种子,seed为1
print(rs.rand(3,4))
---------------------------------------------------------
[[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01]
 [1.46755891e-01 9.23385948e-02 1.86260211e-01 3.45560727e-01]
 [3.96767474e-01 5.38816734e-01 4.19194514e-01 6.85219500e-01]]

二、pandas模块

1、导入方式

import pandas as pd

2、作用

用于文件处理,更多地是给excel文件做处理,对numpy+xlrd模块做了一层封装

3、pandas模块的数据类型

3.1 series()

现在一般不使用(一维)

df = pd.series(np.array([1,2,3,4]))
print(df)

3.2 DataFrame() (多维)

3.2.1

dates = pd.date_range('20190101', periods=6, freq='M')
print(dates)    # periods=6, freq='M'代表前六个月
start 开始时间
end 结束时间
periods 时间长度
freq 时间频率,默认为‘D‘,可选H(our),W(eek),B(usiness),S(emi-)M(onth),(min)T(es), S(econd), A(year),…

3.2.2 属性

属性 详解
dtype是 查看数据类型
index 查看行序列或者索引
columns 查看各列的标签
values 查看数据框内的数据,也即不含表头索引的数据
describe 查看数据每一列的极值,均值,中位数,只可用于数值型数据
transpose 转置,也可用T来操作
sort_index 排序,可按行或列index排序输出
sort_values 按数据值来排序

3.2.3 取值

#构造一个数组
dates = pd.date_range('20190101', periods=6, freq='M')
print(dates)

values = np.random.rand(6, 4) * 10
print(values)

columns = ['c4','c2','c3','c1']

#主要掌握
df.values[1,1]   #取出第一行第一列
df.iloc[1,1] = 1  #取出第一行第一列,替换为1

3.2.4 操作表格

1、缺失值处理

df = df.dropna(axis = 0)    #按行删除缺失值
df
df = df.dropna(tresh = 4)   #必须得有4个值,写5就不可以,因为只有4列
df = df.dropna(axis=0)  # 1列,0行
df  #按行取缺失值

2、合并处理数据

df1 = pd.DataFrame(np.zeros((2,3)))  #用0合并两行三列
df2 = pd.DataFrame(np.ones((2,3)))  #用1合并两行三列
pd.concat((df1,df2))  #默认按列合并
pd.concat((df1,df2),axis=1)    axis=1是行,0是列
df1.append(df2)   #往后追加
  • 导入数据,读取json文件菜鸟仅做了解

原文地址:https://www.cnblogs.com/zhuangyl23/p/11402719.html

时间: 2024-10-09 15:24:23

numpy 模块和 pandas 模块的相关文章

模块讲解---numpymo模块,matplotlib模块,pandas模块

目录 numpy模块 matplotlib模块 pandas模块 numpy模块 numpy模块:用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学运算 在使用的时候,使用方法与其他的模块有一点不一样 import numpy as np 具体的使用方法 1.创建numpy数组--->可变 # 一组数据相乘 import numpy as np arr1 = np.array([1,2,3]) arr2 = np.array([4,5,6]) print(arr1*arr2) #

Python 数据处理扩展包: numpy 和 pandas 模块介绍

一.numpy模块 NumPy(Numeric Python)模块是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)).据说NumPy将Python相当于变成一种免费的更强大的MatLab系统. NumPy模块提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库等. 1).一个强大的N维数组对象Array: 2).比较成熟

练手小程序用了pandas模块和json模块以及time模块

6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式保存 程序写的过程 先生成功能模块和运行模块 再写功能模块中用到的固定的文件目录全放在setting.py文件中 与商品交互全放在shop.py中 与用户交互全放在user.py中 一些返回界面延迟动画全放在辅助模块中 1.程序设计目录 2.run.py from core.src import r

Python中pandas模块快速入门

我这里简单介绍一下Python中,pandas模块定义的两种常用的数据结构,Series和DaraFrame.Series和Python中的Dict类似,但是是结构化的,而DataFrame和数据库中的表类似. 1.pandas基本数据结构-pandas.Series&pandas.DataFrame 第二种定义DataFrame的方法不能手动设置index,只能自动生成序列.date_range('20180201',periods=8)定义时间序列,可以用freq来设置频率:s=pd.dat

Python数据分析 Pandas模块 基础数据结构与简介(一)

pandas 入门 简介 pandas 组成 = 数据面板 + 数据分析工具 poandas 把数组分为3类 一维矩阵:Series 把ndarray强大在可以存储任意数据类型可以专门处理时间数据 二维矩阵:DataFrame 三维面板数据:Panel 背景:为金融产品数据分析创建的,对时间序列支持非常好! 数据结构 导入pandas模块 import pandas as pd 读取csv文件,数据类型就是二维矩阵 DataFrame df = pd.read_csv('路径')type(df)

Python常用模块——第三方开源模块的安装使用

Python常用模块--第三方开源模块的安装使用 https://pypi.python.org/pypi是python的开源模块库,截止2019年4.30日 ,已经收录了175870个来自全世界python开发者贡献的模块,几乎涵盖了你想用python做的任何事情. 事实上每个python开发者,只要注册一个账号就可以往这个平台上传你自己的模块,这样全世界的开发者都可以容易的下载并使用你的模块. 如何从这个平台上下载模块呢? 1.直接在页面上点download,下载后,解压并进入目录,执行以下

day5模块学习 -- os模块学习

python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- 另外,os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,额...我擦,我还真不知道,(甭管怎么着,肯定不是pwd),这时候我们使用python中os模块的os.path.abspath

python下通过os模块和shutil模块进行文件处理方式

python下通过os模块和shutil模块进行文件处理方式 得到当前工作目录路径:os.getcwd() 获取指定目录下的所有文件和目录名:os.listdir(dir) 删除文件:os.remove(file) 删除多个目录:os.removedirs(r"/home") 检测路径是否为文件:os.path.isfile(path) 检测路径是否为目录:os.path.isdir(path) 判断是否为绝对路径:os.path.isabs(path) 检测路径是否存在:os.pat

Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块

5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 5.1 使用sys.argv进行登录判断,跳过 i/o阻塞 #使用sys.argv进行登录判断,跳过 i/o阻塞 import s