numpy和pandas是在数据分析经常用到的两个工具,由于是使用c++写的,同时他是直接是使用了矩阵的运算,基于上述的原因,相比于python,他俩的特点就是快

numpy:

import numpy as np

一、属性

1、列表转矩阵:array= np.array([[1,2,3],[4,5,6]])

2、矩阵的维数:array.ndim

3、矩阵的形状:array.shape

4、元素的数目:array.size

二、矩阵的创建

1、使用数据类型:array= np.array([4,5,6],dtype=np.int32) # 除此之外,还有np.int64  np.float

2、元素全为零的矩阵:np.zeros([1,2,3])

3、元素全为1的矩阵:np.ones([2,4])

4、元素为空,实际上接近为零:np.empty([2,4])

5、生成从零到11的3行4列矩阵:np.arrage(12).reshape((3,4))

6、生成20个点的线:np.linspace(1,10,20)      3行4列:np.linspace(1,10,20).reshape((3,4))

7、生成随机3行4列的0~1的矩阵:np.random.random((3,4))

三、矩阵的运算

a = arange(4) ## a = [0 1 2 3]

1、各个元素的sin值:np.sin(a) ##

2、打印小于某个值的矩阵: print(a < 3)  ## [True, True, True, False]

3、两个矩阵对应元素相乘:c = a*b

4、内积/点积/数量积: np.dot(a, b) 或者 a.dot(b)

5、求矩阵每一行的元素的和:np.sum(a, axis = 0);       求每一行的最大值:np.max(a, axis = 0) ;     求每一行的最小值:np.min(a, axis = 0)

6、求平均值:np.mean(a); np.average(a)

7、求中位数:np.median(a)

8、前n个元素累加:np.cumsum(a) ## a = [1 2 3 5]  b = np.cumsum(a) #[1 3 6 11]

9、相邻的累查:np.diff(a) ## a = [1 2 3 5]  b = np.diff(a) #[1 1 2]

10、逐行排序(行内的元素排序):np.sort(a)

11、矩阵的转置: np.transpose(a) 或者a.T

12、矩阵的截断:np.clip(a, 5, 9)  #小于5的,截断为5, 大于9的,截断为9

13、求矩阵的索引:(1)最小值索引 np.argmin(a) ; (2)np.argmax(a)

四、矩阵的索引

1、矩阵的索引:a[1][2]、a[1,2]、a[:,1]、a[1,:]

2、展开矩阵为1行:a.flat 或者 a.flatten()

五、 矩阵的合并

1、上下合并:np.vstack((a,b))

2、左右合并:np.hstack((a,b))

3、增加一个维度:(1)行增加一个维度:a[np.newaxis,:] (2)列增加一个维度:a[:, np.newaxis]

4、矩阵按行合并: np.concatenate((a,b,b,a),axis = 0)

六、矩阵的分隔

1、将np.arange(12).reshape((3,4))一个矩阵按照左右分隔为两部分:np.split(a, 2, axis = 1)  #垂直分隔np.split(a, 2, axis = 0)

2、不等分隔:np.array_split(a, 2, axis = 0)

3、垂直分隔成3块:np.vsplit(a, 3)  横向分隔为3块:np.hsplit(a, 3)

七、复制

1、b = a[:] 或者 b = a.copy()

2、指向同一个地址的复制: b = a  # a的值改变,b的值也会改变,反过来亦然

八、Numpy矩阵和数组的区别

1、mat()可将数据转化成矩阵: randmat= mat(random.rand(4, 4))

2、矩阵使用.I操作符可以求矩阵的逆: invRanMat = randMat.I

3、单位矩阵:myEye = randmat* invRanMat      可以直接用eye表示n阶单位矩阵:eye(4)

九、根据概率随机生成序列

np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]) array([3, 3, 0])

十、logical_and(),logical_or(), logical_not(), logical_xor()

numpy.logical_and(x1, x2)

输入数组。 x1和x2必须具有相同的形状。
y:ndarray或bool
布尔结果,与x1和x2的相应元素上的逻辑AND运算,结果和x1和x2形状相同。 如果x1和x2都是标量,则也返回标量。

A = [True, False]
B = [False, False]
C = logical_and(A, B)
print(C)  # [False False]A = arange(5)
print(A)  # [0 1 2 3 4]
B = logical_and(A > 1, A < 4)
print(B)  # [False False  True  True False]

十一、数据可将元素转化成bool值

n = np.array(range(5))
print(n>1)
[False False  True  True  True] 

十二、范数的计算:

from numpy import linalg as la
import numpy as np
a = np.array([1,2,3])
b = np.array([2,3,4])
# a 和 b 之间的欧式距离
la.norm(a-b) # 默认为2范数

十三、SVD奇异值分解

from numpy import linalg as laU, sigma, VT = la.svd(dataMat)

numpy和pandas教程相关推荐

  1. 【莫烦Python】Pandas教程

    目录 前言 1.Pandas vs Numpy 2.基本介绍 3.选择数据 4.设置值 5.处理丢失的数据 6.pandas导入导出 7.pandas合并concat 8.pandas合并merge ...

  2. python使用教程pandas-python学习教程之Numpy和Pandas的使用

    前言 本文主要给大家介绍了关于python中Numpy和Pandas使用的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 它们是什么? NumPy是Python语言的一个扩 ...

  3. 数据基础---numpy、pandas使用教程

    数组对象 Numpy库 Numpy最重要的一个特点是就是其N维数组对象,即ndarray,ndarray是一个通用的同构数据多维容器,其中的所有元素必须是相同类型的.每个数组都有一个shape(一个表 ...

  4. Numpy和Pandas的区别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 Numpy和Pandas的区别 Numpy是数值计算的扩展包,能够 ...

  5. NumPy库入门教程:基础知识总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 numpy可以说是Python运用于人工智能和科学计算的一个重要基 ...

  6. numpy 创建加一行_Python数据分析快速入门--NumPy amp; Pandas

    之前为大家分享了python的基本语法,有疑问的小伙伴可以参考下文- 土豆爱数学:零基础如何快速入门python​zhuanlan.zhihu.com 对python基本语法了解后,就可以尝试用pyt ...

  7. 【Python基础】101道Numpy、Pandas练习题,提升你的Python水平

    无论是数据分析还是机器学习,数据的预处理必不可少.其中最常用.最基础的Python库非numpy和pandas莫属,很多初学者可能看了很多教程,但是很快就把用法忘光了. 光看不练假把式,今天向大家推荐 ...

  8. [Python从零到壹] 十一.数据分析之Numpy、Pandas、Matplotlib和Sklearn入门知识万字详解(1)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. Python之Numpy入门实战教程(2):进阶篇之线性代数

    Numpy.Pandas.Matplotlib是Python的三个重要科学计算库,今天整理了Numpy的入门实战教程.NumPy是使用Python进行科学计算的基础库. NumPy以强大的N维数组对象 ...

最新文章

  1. android 创建资源别名,android – 将具有相同名称的布局资源别名化为不同的屏幕限定符...
  2. qt 分辨率问题 安卓_Windows下基于Qt开发Android应用
  3. 转:jQ函数after、append、appendTo的区别
  4. 《Head First Python》第四章--持久存储
  5. Linux负载均衡Nginx六种策略
  6. 春风吹用计算机的谱子,方大同《春风吹》简谱
  7. 怎么打_打工人|你怎么打工人了?
  8. JS数组的迭代器方法
  9. java户名的正则表达式_java – 用于验证用户名的正则表达式
  10. Windows下Jenkins的详细安装及使用
  11. Atitit 计算机的组成与设计 目录 1. 计算机系统是由硬件系统和软件系统两大部分组成。  1 1.1. Cpu(alu+cu ) 1 1.2. 存储内存 外村 1 1.3. Io设备 鼠标
  12. 算法导论--最小生成树(Kruskal和Prim算法)
  13. 深入浅出mysql笔记
  14. window10下CUDA9安装和vs2015配置
  15. dubbo源码分析23 -- provider 接收与发送原理
  16. 720全景制作 - 微信、PC、移动web
  17. MFC编辑框控件绑定变量出现神奇bug
  18. aspiration搭配_明3你们最喜欢的组合有哪些?
  19. 关于制作FlappyBird无限地面的一些问题
  20. 【跨境必备】五分钟学会设定Facebook Chatbot

热门文章

  1. 利用requests自动下载ppt模板
  2. linux 目录最大文件数,Linux目录数和文件数限制(目录上最大文件数)
  3. C++抽象类详解--纯虚函数,抽象类
  4. java轻功游戏,各大手游系统轻功花样百出,一番尝试之后,我只留下了这款游戏...
  5. chrome无法加载更新后的js文件
  6. docker容器以及Java项目和当前北京时间不一致的问题
  7. vue3登录时后台返回状态码不是200,怎么还跳转
  8. 基于主要成分分析的人脸二维码识别系统-含Matlab代码
  9. node.js linux 网站,Node.js安装与配置
  10. 物联网基于pole异地组网