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. 用Docker容器安装Jenkins

    先安装Docker 可以参考我的上一篇文章 链接 拉取Jenkins最新镜像,可跟版本号 不跟默认拉取最新镜像 docker pull jenkins/jenkins 创建JenKins的工作目录 m ...

  2. 本溪6397.7539(薇)xiaojie:本溪哪里有xiaomei

    本溪哪里有小姐服务大保健[微信:6397.7539倩儿小妹[本溪叫小姐服务√o服务微信:6397.7539倩儿小妹[本溪叫小姐服务][十微信:6397.7539倩儿小妹][本溪叫小姐包夜服务][十微信 ...

  3. MeteoInfoLab脚本示例:TRMM 2A12 HDF数据

    TRMM 2A12 HDF数据是卫星观测的SWATH数据(轨道数据),比格点数据处理起来要麻烦一些.数据的经纬度保存在geolocation变量中,需要先将经纬度数据读出来(均为2维数组),然后读取云 ...

  4. Jmeter请求元件之参数化CSV

    1.设置CSV:线程组->配置元件->CSV 数据文件设置 2.在本地创建txt文件,一个测试用例参数是一行,参数之间用逗号分隔: 或者创建一个excel文档,保存格式为csv: 这里有个 ...

  5. CentOS7克隆多个虚拟机

    VMware+centos7克隆虚拟机 步骤一:打开虚拟机,右键选中已经配置好的虚拟机,选择manage下面的clone选项.这里有一个需要注意的地方,就是虚拟机在启动或者挂起的状态下是不能clone ...

  6. gorm学习地址

    1 gorm curd指南 2 gorm入门指南

  7. Pyrhon-OS库

    import os 导入OS模块 print(os.getcwd()) #获取当前路径 print(os.listdir()) #当前路径下文件信息 关于路径 Windows 下的路径采用 (\) 在 ...

  8. Java 中的 3 个双引号是什么语法?Java 15 刷新你的认知!

    Java 中的 3 个双引号 """ 是什么语法? 这是 Java 15 新出的,刷新你的认知! 一.前言 在 Java 15 的推出的时候,Text Blocks 正式 ...

  9. C#设计模式-模板方法模式(Template Method)

    概念 模板指一些可以套用的公共内容,例如网页模板是当网站中有许多页面版式色彩相同的情况下,将其定义为网页模板,并定义其中部分可编辑,部分不可编辑,那么在利用网页模板制作其他页面时就会很方便,不易出错. ...

  10. Oracle初始——第一天

    一.数据库分类 1.小型数据库:access.foxbase 2.中型数据库:informix.sql server.mysql 3.大型数据库:sybase.db2.oracle 二.注释 1./* ...