1. import numpy as np

创建一个矩阵

  1. array = np.array([[1, 2, 3],
  2. [3, 2, 1]])
  1. print(array)
  2. # [[1 2 3]
  3. # [3 2 1]]
  1. print('array dim:', array.ndim) # 显示几维

shape 矩阵的形状

  1. print('shape:', array.shape) # 显示几行几列

设置元素的类型

  1. a = np.array([1, 2, 3], dtype=np.float)
  1. print(a.dtype)
  2. # float64

有时候我们会生成矩阵

  1. # ####### 生成全部为0的矩阵 #########
  2. zero = np.zeros((3, 4), dtype=int)
  3. print(zero)
  4. # [[0 0 0 0]
  5. # [0 0 0 0]
  6. # [0 0 0 0]]
  7. # ########生成全部为1的矩阵 ###############
  8. ones = np.ones((3, 5))
  9. print(ones)
  10.  
  11. # [[1. 1. 1. 1. 1.]
  12. # [1. 1. 1. 1. 1.]
  13. # [1. 1. 1. 1. 1.]]
  1. # ######### reshape #####################
  2. _range = np.arange(20).reshape((5, 4))
  3. print(_range)
  4. #[[ 0 1 2 3]
  5. # [ 4 5 6 7]
  6. # [ 8 9 10 11]
  7. # [12 13 14 15]
  8. # [16 17 18 19]]
  1. # ########### 线段 ###################
  2. linplace = np.linspace(0, 10, 6)
  3. print(linplace)

线段矩阵,表示从0到10的闭区间也就是11个数,取6个数出来

2.矩阵的分隔

  1. import numpy as np
  2.  
  3. a = np.array([[0, 1, 2],
  4. [2, 3, 4]])
  5. b = np.arange(0, 6).reshape([3, 2])
  6.  
  7. print(a)
  8. print(b)
  9.  
  10. print(a > 3) # 每个元素都判断一边是不是满足条件不满足返回false,满足返回trueprint(a+b) # 加法减法都一样print(a*b) # 乘法 对应位置相乘print('########################')print(np.sin(a)) # sin cos tan都可以(每个位置分别sin ...)print(np.dot(a, b)) # 矩阵相乘 ()# 还有一种表达方式为 a.dot(b)
  11.  
  12. x = np.random.random([2, 4]) # 随机生成一个在0到1之间的x
  13. print(x)
  14. print(x.sum(axis=0)) # 全部元素的和 axis等于0在每一列寻找 等于1在每一行中寻找
  15. print(x.max()) # 最大值
  16. print(x.min()) # 最小值
  17.  
  18. print(np.argmin(a)) # 返回最小值的索引
  19. print(a.argmax()) # 返回最大值的索引
  20. print(np.average(a)) # 这样也可以返回平均值 但是这个不能a.median()
  21. print(a.mean()) # 返回平均值 当然 np.argmean()也可以
  22. print(np.median(a)) # 中位数 这个不能 a.median()
  23. print(np.cumsum(a)) # 元素个数相同,每个元素是之前的累加
  24. print(np.diff(a)) # 两个元素之间的差
  25. print(np.nonzero(a)) # 返回两个数列分别表示行,列
  26. print(np.sort(a)) # 排序
  27. print(np.transpose(a)) # 转置
  28. print(a.T) # 转置
  29. print(np.clip(a, 5, 9)) # 所有小于五的数都设置为5 大于9的数变为9

3.矩阵的索引

  1. # 什么a[0] a[0][1] for row in a 的我就不讲了,反正也会
  2. # 其实a[0][1] 也可以表示为a[0, 1]
  3.  
  4. for row in a:
  5. print(row) # 打印行
  6.  
  7. for column in a.T:
  8. print(column) # 打印列
  9.  
  10. # 最后依然说一些关于迭代输出的问题:
  11. A = np.arange(3, 15).reshape((3, 4))
  12.  
  13. print(A.flatten())
  14. # array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
  15.  
  16. for item in A.flat:
  17. print(item)

4.矩阵的分割

  1. import numpy as np
  2.  
  3. A = np.arange(12).reshape((3, 4))
  4.  
  5. X = np.split(A, 3, axis=0) # 横这分割
  6. x = np.vsplit(A, 3) # 横这分割
  7. Y = np.split(A, 4, axis=1) # 列着分割
  8. y = np.hsplit(A, 4) # 列着分割
  9. print(type(A))
  10. # <class 'numpy.ndarray'>
  11. print(X)
  12. # [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
  13. print(type(X))
  14. # <class 'list'>
  15.  
  16. Z = np.array_split(A, 5, axis=1) # 不对等分割
  17. print(A)
  18. # [[ 0 1 2 3]
  19. # [ 4 5 6 7]
  20. # [ 8 9 10 11]]
  21. print(Z)
  22. # [array([[0],
  23. # [4],
  24. # [8]]), array([[1],
  25. # [5],
  26. # [9]]), array([[ 2],
  27. # [ 6],
  28. # [10]]), array([[ 3],
  29. # [ 7],
  30. # [11]]), array([], shape=(3, 0), dtype=int32)]

5.矩阵的合并

  1. import numpy as np
  2. A = np.array([1, 2, 3])
  3. print(A.shape) # 此时A不是矩阵属性,只是一个列表属性
  4. # (3,)
  5. print(A.T) # 所以转置无效
  6. # [1 2 3]
  7. # 需要变为矩阵在来转置
  8. # ######### 把a变成矩阵
  9. print(A[np.newaxis, :].shape)
  10. # (1, 3)
  11. B = np.array([5, 6, 7])
  12. C = np.vstack((A, B)) # 上下合并
  13. D = np.hstack((A, B)) # 左右合并
  14. print(C)
  15. # [[1 2 3]
  16. # [5 6 7]]
  17. print(D)
  18. # [1 2 3 5 6 7]
  19. print(C.T)
  20. # [[1 5]
  21. # [2 6]
  22. # [3 7]]

python 《numpy》的更多相关文章

  1. 高阶NumPy知识图谱-《利用Python进行数据分析》

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片. 其他章 ...

  2. 《利用python进行数据分析》读书笔记 --第一、二章 准备与例子

    http://www.cnblogs.com/batteryhp/p/4868348.html 第一章 准备工作 今天开始码这本书--<利用python进行数据分析>.R和python都得 ...

  3. 《Python计算机视觉编程》

    <Python计算机视觉编程> 基本信息 作者: (美)Jan Erik Solem 译者: 朱文涛 袁勇 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978711535 ...

  4. 《用 Python 学微积分》笔记 3

    <用 Python 学微积分>原文见参考资料 1. 16.优化 用一个给定边长 4 的正方形来折一个没有盖的纸盒,设纸盒的底部边长为 l,则纸盒的高为 (4-l)/2,那么纸盒的体积为: ...

  5. 《用 Python 学微积分》笔记 2

    <用 Python 学微积分>原文见参考资料 1. 13.大 O 记法 比较两个函数时,我们会想知道,随着输入值 x 的增长或减小,两个函数的输出值增长或减小的速度究竟谁快谁慢.通过绘制函 ...

  6. 《用 Python 学微积分》笔记 1

    <用 Python 学微积分>原文见参考资料 1. 1.多项式 f(x)=x3-5x2+9 def f(x): return x**3 - 5*x**2 + 9 print f(3) pr ...

  7. 《Python学习手册》(二)

    <Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...

  8. 「学习记录」《数值分析》第二章计算实习题(Python语言)

    在假期利用Python完成了<数值分析>第二章的计算实习题,主要实现了牛顿插值法和三次样条插值,给出了自己的实现与调用Python包的实现--现在能搜到的基本上都是MATLAB版,或者是各 ...

  9. python爬虫及结巴分词《攀登者》影评分析

    <攀登者>影评爬取及分析 0.项目结构 其中simkai.ttf为字体文件,Windows查看系统自带的字体 C:\Windows\Fonts 一.爬取豆瓣影评数据 # -*- codin ...

随机推荐

  1. day27 Pyhton 面向对象02 组合

    # 组合 # 什么是组合 : 一个类对象的属性是另外一个类的对象 class Person: def __init__(self,name,sex,hp,mp,ad): self.name = nam ...

  2. spring boot:用dynamic-datasource-spring-boot-starter配置多数据源访问seata(seata 1.3.0 / spring boot 2.3.3)

    一,dynamic-datasource-spring-boot-starter的优势? 1,dynamic-datasource-spring-boot-starter 是一个基于springboo ...

  3. go 结构体与方法

    go 结构体与方法   go 结构体相当于 python 中类的概念,结构体用来定义复杂的数据结构,存储很多相同的字段属性 结构体的定义 1.结构体的定义以及简单实用 package main imp ...

  4. Typora图片一键传——picgo使用兰空图床

    Typora picgo使用兰空图床 最近smms图床免费版的速度眼看着越来越慢,特别是到晚上,图片几乎是在原地打转,于是我想替换掉Typora中picgo默认使用的smms图床,网上的教程清一色地只 ...

  5. Nginx02---配置文件

    Nginx(二)------nginx.conf 配置文件   目录 1.nginx.conf 的主体结构 2.全局块 3.events 块 4.http 块 ①.http 全局块 ②.server ...

  6. Callable接口

    Callable与Runnable的不同区别在于: 1.Callable有返回值 Runnable没有返回值 2.Callable需要实现的方法是call方法       Runnable需要实现的方 ...

  7. 第六章 DQL 数据查询语言

    一.select 简单查询命令 #1.查询表中所有的数据 mysql> select * from test.student; #2.查看所有数据之前,先查看数据量 mysql> sele ...

  8. 如何在 vue 项目里正确地引用 jquery

    转载 2016年11月13日 使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要修改的是build/webpack.base.conf.js,修改两处的代码 / ...

  9. 联赛模拟测试25 C. Repulsed 贪心+树形DP

    题目描述 分析 考虑自底向上贪心 \(f[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的需要灭火器的房间数,\(g[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的多余灭火器 ...

  10. 【转】Optimized Surface Loading and Soft Stretching

    FROM:http://lazyfoo.net/tutorials/SDL/05_optimized_surface_loading_and_soft_stretching/index.php Opt ...