import numpy as np

创建一个矩阵

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

shape 矩阵的形状

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

设置元素的类型

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

有时候我们会生成矩阵

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

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

2.矩阵的分隔

import numpy as np

a = np.array([[0, 1, 2],
[2, 3, 4]])
b = np.arange(0, 6).reshape([3, 2]) print(a)
print(b) 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) x = np.random.random([2, 4]) # 随机生成一个在0到1之间的x
print(x)
print(x.sum(axis=0)) # 全部元素的和 axis等于0在每一列寻找 等于1在每一行中寻找
print(x.max()) # 最大值
print(x.min()) # 最小值 print(np.argmin(a)) # 返回最小值的索引
print(a.argmax()) # 返回最大值的索引
print(np.average(a)) # 这样也可以返回平均值 但是这个不能a.median()
print(a.mean()) # 返回平均值 当然 np.argmean()也可以
print(np.median(a)) # 中位数 这个不能 a.median()
print(np.cumsum(a)) # 元素个数相同,每个元素是之前的累加
print(np.diff(a)) # 两个元素之间的差
print(np.nonzero(a)) # 返回两个数列分别表示行,列
print(np.sort(a)) # 排序
print(np.transpose(a)) # 转置
print(a.T) # 转置
print(np.clip(a, 5, 9)) # 所有小于五的数都设置为5 大于9的数变为9

3.矩阵的索引

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

4.矩阵的分割

import numpy as np

A = np.arange(12).reshape((3, 4))

X = np.split(A, 3, axis=0)  # 横这分割
x = np.vsplit(A, 3) # 横这分割
Y = np.split(A, 4, axis=1) # 列着分割
y = np.hsplit(A, 4) # 列着分割
print(type(A))
# <class 'numpy.ndarray'>
print(X)
# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
print(type(X))
# <class 'list'> Z = np.array_split(A, 5, axis=1) # 不对等分割
print(A)
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
print(Z)
# [array([[0],
# [4],
# [8]]), array([[1],
# [5],
# [9]]), array([[ 2],
# [ 6],
# [10]]), array([[ 3],
# [ 7],
# [11]]), array([], shape=(3, 0), dtype=int32)]

5.矩阵的合并

import numpy as np
A = np.array([1, 2, 3])
print(A.shape) # 此时A不是矩阵属性,只是一个列表属性
# (3,)
print(A.T) # 所以转置无效
# [1 2 3]
# 需要变为矩阵在来转置
# ######### 把a变成矩阵
print(A[np.newaxis, :].shape)
# (1, 3)
B = np.array([5, 6, 7])
C = np.vstack((A, B)) # 上下合并
D = np.hstack((A, B)) # 左右合并
print(C)
# [[1 2 3]
# [5 6 7]]
print(D)
# [1 2 3 5 6 7]
print(C.T)
# [[1 5]
# [2 6]
# [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. python 字典使用——增删改查

    创建字典 dict= {key1 : value1, key2 : value2 } key : value 为键值对 增: dict[key] = value 删: del dict[key] 改: ...

  2. java 实体对象转Map公共类

    java 实体对象转Map公共类 package org.kxtkx.portal.utils; import java.lang.reflect.Field; import java.util.Ha ...

  3. 为啥 Response.Write 后,View就不渲染了?

    一:背景 1. 讲故事 前几天群里有一位朋友聊到,为什么我在 Action 中执行一句 Response.Write 之后,后续的 View 就不呈现了,如果脑子中没有画面,那就上测试代码: publ ...

  4. Linux命令获得帮助

    在Linux中获得帮助 查帮助的思路 whatis CMD mandb type CMD 如果内部:help CMD ; man bash 如果外部:CMD --help | -h 概述 获取帮助的能 ...

  5. Prometheus入门教程(三):Grafana 图表配置快速入门

    文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/sA0nYevO8yz6QLRz03qJSw 前面我们使用 Prometheus + Grafana ...

  6. Unity实现代码控制音频播放

    前言 很久没说过Unity了,现在说一下Unity用代码控制音频播放 准备工作 1.需要播放的音频 2.给需要加声音的对象加Audio Source组件 3.新建Play脚本,并绑定需要播放声音的对象 ...

  7. 学了那么多 NoSQL 数据库 NoSQL 究竟是啥

    NoSQL 简史 NoSQL 一词最早出现于 1998 年,是 Carlo Strozzi 开发的一个轻量.开源.不提供 SQL 功能的关系数据库. 2009 年,Last.fm 的 Johan Os ...

  8. 雨露均沾的OkHttp—WebSocket长连接的使用&源码解析

    前言 最近老板又来新需求了,要做一个物联网相关的app,其中有个需求是客户端需要收发服务器不定期发出的消息. 内心OS:

  9. 立即执行函数 - Js函数笔记

    立即执行函数 定义:此类函数没有声明,在执行一次后即释放,适合做初始化. 针对初始化功能的函数,同时遵循一句话,只有表达式才能被执行符号执行 1.(function() {...}()); - W3C ...

  10. SpringBoot第一集:入门(2020最新最易懂)

    2020最新SpringBoot第一集:入门(2020最新最易懂) 学习思路: 是什么?为什么要学,有什么用?有什么特点?简单明了的总结一句话! SpringBoot推荐开发工具: Spring To ...