参考链接: Python中的numpy.radians和deg2rad

一、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]

# 创建二维的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文件菜鸟仅做了解

[转载] python中的numpy模块和pandas模块的区别_numpy 模块和 pandas 模块相关推荐

  1. [转载] Python中的numpy linalg模块

    参考链接: Python中的numpy.bmat 原文链接:https://www.cnblogs.com/xieshengsen/p/6836430.html # 线性代数 # numpy.lina ...

  2. [转载] [转载] python中的Numpy库入门

    参考链接: Python中的numpy.ones_like 参考链接: Python中的numpy.full_like 目录 N维数组对象: ndarray引例ndarray对象的属性ndarray数 ...

  3. [转载] python中的Numpy库入门

    参考链接: Python中的numpy.full_like 目录 N维数组对象: ndarray引例ndarray对象的属性ndarray数组的元素类型ndarray数组的创建方法从Python中的列 ...

  4. [转载] python中sort,sorted,reverse,reversed的区别

    参考链接: Python中的sort 简单的说以上四个内置函数都是排序. 对于sort和reverse都是list列表的内置函数,一般不传参数,没有返回值,会改变原列表的值. 而sorted和reve ...

  5. [转载] [转载] python 中NumPy和Pandas工具包中的函数使用笔记(方便自己查找)

    参考链接: Python中的numpy.sinh 参考链接: Python中的numpy.less_equal 二.常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ...

  6. [转载] python 中NumPy和Pandas工具包中的函数使用笔记(方便自己查找)

    参考链接: Python中的numpy.less_equal 二.常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力 ...

  7. [转载] python中numpy模块的around方法_更好地舍入Python的NumPy.around:舍入numpy的数组

    参考链接: Python中的numpy.round_ I am looking for a way to round a numpy array in a more intuitive fashion ...

  8. python中的numpy模块

    参考  python中的numpy模块 - 云+社区 - 腾讯云 目录 NumPy 教程 学习本教程前你需要了解 NumPy 应用 相关链接 NumPy 安装 1.使用已有的发行版本 2.使用 pip ...

  9. [转载] Python中Numpy基础

    参考链接: Python中的numpy.less numpy的功能: 提供数组的矢量化操作,所谓矢量化就是不用循环就能将运算符应用到数组中的每个元素中.提供数学函数应用到每个数组中元素提供线性代数,随 ...

最新文章

  1. Matlab中的图形句柄(转载)
  2. gpu装linux系统显示黑屏,linux操作系统安装gpu版本的paddlepaddle出现问题
  3. 雷达多普勒频率计算公式_非接触式雷达在线测流系统是由什么组成的?
  4. java五子棋以当前空位为中心 取9个点_java 五子棋有点问题,哪位帮忙破一下、、...
  5. 【数据结构与算法】之深入解析“验证二叉搜索树”的求解思路与算法示例
  6. JVM内存溢出分析-实战JVM(二)
  7. 深度学习loss值变为0_利用TensorFlow2.0为胆固醇、血脂、血压数据构建时序深度学习模型(python源代码)...
  8. 电脑手写输入法_百度输入法“手写输入”为什么不是老年人的专利?AI的进步...
  9. CentOS 7安装TigerVNC Server
  10. 计算机中那些事儿(八):再历装系统之终身学习
  11. 在nhibernate 1.2 中使用sqlite时应注意sqlite的ado.net的提供者 .
  12. 【图像处理】H.264开源解码器评测
  13. java 下载文件的文件名乱码_java下载文件名乱码解决方法介绍
  14. 学习大数据参加培训班,大概需要多长时间?
  15. 美国加拿大结婚证公证及使馆认证流程时间用于国内法院离婚
  16. Linux 压缩文件夹tar/zip
  17. 【技术博客】当蒸馏遇上GAN
  18. 惠普台式电脑引导不了系统_hp台式机进不去系统怎么办
  19. 跟着团子学SAP PS:增加WBS元素为分摊发送方提升单个项目内部成本精准归集 KSV1/KSU1
  20. 20220124英语学习

热门文章

  1. NYOJ975 - 关于521
  2. NYOJ31 - 5个数求最值
  3. linux向用户发送消息,Linux终端中向记录的用户发送消息
  4. python将图片转换为字符_python如何将图片转换为字符图片
  5. php 循环 post,如何在php中使用jQuery递归调用POST循环请求
  6. SPOJ DQUERY D-query--线段树解法
  7. 在inet下写一个“HelloWorld”程序
  8. 继承基础概念与公有继承
  9. bzoj 1237: [SCOI2008]配对(DP)
  10. bzoj 4443: [Scoi2015]小凸玩矩阵(二分+二分匹配)