Numpy创建矩阵

矩阵的创建
1.使用 mat 函数创建矩阵: matr1 = np.mat(“1 2 3; 4 5 6; 7 8 9”)
2.使用 matrix 函数创建矩阵:matr2= np.matrix([[1,2,3], [4,5,6], [7,8,9]])
3.使用 bmat 函数合成矩阵:np.bmat (“arr1 arr2; arr1 arr2”)

import numpy as np# 一、创建矩阵
# 1.mat函数
#方法一:
A = np.mat([[1,0,1,0],[-1,2,0,1],[1,0,4,1],[-1,-1,2,0]])
print(A)
#方法二:
B = np.mat('1 0 0 0;0 1 0 0; -1 2 1 0;1 1 0 1')
print(B)# 1.matrix函数与方法一相同
# np.matrix# 3.bmat函数:通过分块矩阵创建大矩阵。
A =  np.mat([[1,1],[1,1]])
B =  np.mat([[2,2],[2,2]])
C =  np.mat([[3,3],[3,3]])
D =  np.mat([[4,4],[4,4]])
big_mat = np.bmat([[A,B],[C,D]])
print(big_mat)

数学中的矩阵

矩阵的运算

矩阵与数相乘:matr13
矩阵相加减:matr1±matr2
矩阵相乘:matr1
matr2
矩阵对应元素相乘:np.multiply(matr1,matr2)

矩阵特有的属性

属性 说明
T 返回自身的转置matr1.T
H 返回自身的共轭转置matr1.H
I 返回自身的逆矩阵matr1.I
A 返回自身数据的2维数组的一个视图matr1.A

ufunc函数以及ufunc函数的广播机制

四则运算:加(+)、减(-)、乘(*)、除(/)、幂(**)。数组间的四则运算表示
对每个数组中的元素分别进行四则运算,所以形状必须相同。
比较运算:>、<、= =、>=、<=、!=。比较运算返回的结果是一个布尔数组,每个元素
为每个数组对应元素的比较结果。
逻辑运算:np.any 函数表示逻辑“or”,np.all 函数表示逻辑“and”。运算结果返回布尔值。
x=np.array( [1,3,5] ) x=np.array( [1,3,5] )
y=np.array( [2,4,3] ) y=np.array( [2,4,3] )
print(np.all(x= =y)) print(np.any(x= =y))

广播机制是指指不同形状的数组之间执行算术运算的方式。需要遵循 4 个原
则。
让所有输入数组都向其中 shape 最长的数组看齐,shape 中不足的部分都通过在前面加
1 补齐。
输出数组的 shape 是输入数组 shape 的各个轴上的最大值。
如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为 1 时,这个数组能
够用来计算,否则出错。
当输入数组的某个轴的长度为 1 时,沿着此轴运算时都用此轴上的第一组值。

例:一维数组的广播机制:
x=np.array([[1,3,5],[1,1,1],[2,2,2],[3,3,3]])
y=np.array([2,4,3])
print (x+y)

x=np.array([[0,0,0],[1,1,1],[2,2,2],[3,3,3]])
y=np.array([1,2,3,4]).reshape((4,1))
print (x+y)

利用Numpy进行统计分析

一、 numpy文件的读写机制

numpy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式。

# 1.二进制读写
# (1)save()函数---写--->硬盘
x = np.array([[0,0,0],[1,1,1],[2,2,2],[3,3,3]])
np.save('x.npy',x)
# (2)load()函数---读
x_array = np.load('x.npy')
print(x_array)
#注意:存储的时候可以省略扩展名,但是读取时不可以。#(3)savez()----可以将多个数组保存到一个文件当中
y = np.array([1,2,3,4,5,6])
np.savez('xy',x,y)# 2.文本数据读取(txt,csv格式)
# (1)写
np.savetxt('x.txt',x,delimiter=',',fmt='%d')
# (2)读
x_array = np.loadtxt('x.txt',delimiter=',')
print(x_array)# (3)genfromtxt()函数
# 面向结构化数组和缺失数据。genfromtxt和loadtxt多用genfromtxt
jobInfo = np.dtype([('name',np.str_,40),('number',np.int32),('loca',np.str_,16)])
jobs = np.loadtxt('jobs.txt',dtype=jobInfo,delimiter=',')
print(jobs)jobs2 = np.genfromtxt('jobs.txt',dtype=jobInfo,delimiter=',')
print(jobs2)

统计分析

numpy排序

#1.排序
# (1)sort()函数---直接排序
# 用法:arr.sort()
# axis=0表示沿纵轴排序
# axis=1~~~~~~横轴~~~
# 默认axis=-1  沿横轴
arr = np.array([[4,3,2],[2,1,4]])
print(arr)
'4,3,2' \
'2,1,4'
# arr.sort()
# print(arr)
'[[2 3 4]'
'[1 2 4]]'
arr.sort(axis=0)
print(arr)# 2间接排序---不改变原始数据
# (1)argsort()函数
# 返回值为重新排序后值的下标
arr = np.array([2,1,0,5,3])
arr1 = arr.argsort()
print('原始数据:\n',arr)
print('排序后的数据:\n',arr1)for i in arr1:print(arr[i],end='~')# (2)lexsort()函数
# 返回值是按照最后一个传入数据排序的。eg:np.lexsort((a,b,c))
a = np.array([3,2,6,4,5])
b = np.array([50,30,40,20,10])
c = np.array([400,300,600,100,200])
d = np.lexsort((a,b,c))#[3 4 1 0 2]
print(d)

数据分析:numpy模块(二)相关推荐

  1. python炒股模块_Python数据分析-numpy模块、pandas模块.基本操作、股票案例

    索引操作和列表同理 arr = np.random.randint(0,100,size=(5,6)) arr array([[14, 89, 71, 96, 1, 94], [30, 98, 10, ...

  2. Python数据分析-NumPy模块-选取数组元素

    一维数组的元素选取 选取单个元素 from numpy import array a=array([1,2,5,48,62,9,4,7,2,3,6,9]) # 正序索引,其值是从0开始计数 print ...

  3. 边信息(即对应的两个数组值)_Python 数据分析 NumPy 模块迭代数组nditer方法详解...

    考虑到实际应用场景中,数组往往不止一个维度,因此遍历数组中所有元素,使用while和for循环写起来很麻烦,本文将介绍NumPy自带的数组遍历方法nditer. 迭代器对象 nditer 在numpy ...

  4. Python 数据分析三剑客之 NumPy(二):数组索引 / 切片 / 广播 / 拼接 / 分割

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  5. Python数据分析——NumPy数值计算基础(二)

    Python数据分析--NumPy数值计算基础(二) 思维导图: 数据的csv文件存取 csv(Comma-Separated Value,逗号分隔值)文件:是一种常见的文件格式,用来存储批量数据. ...

  6. 100道练习题,玩转Numpy模块!(上)

    100道练习题,玩转Numpy模块!(上) Numpy 介绍 Numpy 是 Python 做数据分析所必须要掌握的基础库之一.以下为入门 Numpy 的100题小练习,原为 github 上的开源项 ...

  7. python数据分析 - numpy | ndarray数组 | numpy常用函数

    文章目录 数据分析 numpy概述 numpy历史 numpy的核心:多维数组 numpy基础 ndarray数组 内存中的ndarray对象 ndarray数组对象的特点 ndarray数组对象的创 ...

  8. Python数据分析第十二课:单变量、双变量及多变量分析图

    一.单变量分析绘图 什么是单变量分析? 单变量其实就是我们通常接触到的数据集中的一列数据. 单变量分析是数据分析中最简单的形式,其中被分析的数据只包含一个变量.因为它是一个单一的变量,它不处理原因或关 ...

  9. 数据分析的基础:前言、概念、应用、分析方法、分析工具、基本流程、Python数据分析常用模块

    文章目录 一.前言 1.数据价值 2.数据分析之路 二.数据分析的概念 三.数据分析的应用 四.数据分析方法 1.概念 2.详解 五.数据分析工具 六.数据分析的基本流程 七.Python数据分析常用 ...

  10. python 数据分析模块_Python数据分析pandas模块用法实例详解

    本文实例讲述了Python数据分析pandas模块用法.分享给大家供大家参考,具体如下: pandas pandas10分钟入门,可以查看官网:10 minutes to pandas 也可以查看更复 ...

最新文章

  1. 剑桥大学2020《AI全景报告》出炉,177页ppt
  2. 微软的Ajax库客户端Bug总结
  3. TCP三次握手(建立连接)/四次挥手(关闭连接)
  4. Sqlserver中使用ISNULL、CAST、CASE完成对jsTree数据的查询
  5. C语言实现Graph图的算法(附完整源码)
  6. 网站提速-页面静态化(2)
  7. linux爬365租房没有数据,新手求助,LINUX下安装11G不能MOUNT数据库
  8. TS 188字节流结构图
  9. Ionic混合移动app框架学习
  10. mysql mongodb 事务_认识MongoDB 4.0的新特性——事务(Transactions)
  11. Oracle Create Profile
  12. 互联网公司端午节礼盒歧视指南
  13. AS3中 用JPEGEncoder保存 摄像头拍的照片 (另有JPEGEncoder类的下载地址)
  14. Fanvas, 把swf文件转html5 canvas js软件工具程序
  15. 局域网聊天 java_java实现简易局域网聊天功能
  16. 国耀明医院互联网医院:儿童医保门诊不报销???你错啦!
  17. 线性变换(1)——不变子空间
  18. 软考-高项-论文-信息系统项目的进度管理
  19. 项目管理之JIRA安装部署
  20. Redis最详细讲解

热门文章

  1. laravel使用PHPExcel
  2. CSS中RGBA和渐变色
  3. 区块链零知识证明能否破解《三体》的黑暗森林法?
  4. stack与unstack的用法
  5. 移动端web开发选择
  6. 关于JavaSwing表格部件的表格数据的刷新解决方法
  7. 澳门大学科技学院ECE(电机与电脑工程系)招收本硕博学生
  8. 定义为“AI计算公司”,业绩大幅下滑的英伟达新变量在哪?
  9. win7下贝尔金无线路由器配置ADSL拨号上网
  10. Java中使用for循环删除数组中某个元素,并按原有顺序打印