一行代码生成希尔伯特矩阵(Python)矩阵迅速扩展操作
简述
在Sklearn的document上看到的这个代码。简直是让人不得不佩服。太天才了!
下面这一行代码就生成了一个10*10的希尔伯特矩阵
X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
没错,就是这么6
然后,怀着敬畏的心,对这个做进一步的研究。
print(np.arange(1, 11) + np.arange(0, 2)[:, np.newaxis])
输出的结果是:
[[ 1 2 3 4 5 6 7 8 9 10][ 2 3 4 5 6 7 8 9 10 11]]
要注意的是:
print(np.arange(1, 11) + 1)
print(np.arange(1, 11))
输出的结果是:
[ 2 3 4 5 6 7 8 9 10 11]
[ 1 2 3 4 5 6 7 8 9 10]
再进一步的探究:
print(np.arange(1, 10)[:, np.newaxis])
输出结果是:
[[1][2][3][4][5][6][7][8][9]]
简直了! Amazing!
这里告诉了我们两件事,一个ndarray( shape is m * 1) + ndarray(shape is n * 1) 变成了一个新的ndarray(shape is m * n)
例如:
a = np.array([[1, ], [2, ]])
print(np.arange(1, 11) + a)
输出的结果是:(注意,上面的关于a生成过程中逗号不能省去)
[[ 2 3 4 5 6 7 8 9 10 11][ 3 4 5 6 7 8 9 10 11 12]]
此外还有
a = np.array([[1, ], [2, ]])
print(a[:, np.newaxis])
这个输出是:
[[[1]][[2]]]
表面上看,这个操作实现了对于原来的函数的上增加一个新的维度。
但是还是很值得考究。比如下面的这个情况:
a = np.array([[1, 3], [2, 4]])
print(a[:, np.newaxis])
输出是:
[[[1 3]][[2 4]]]
目前可以理解的是,这个操作的效果。
解开最外层的list,然后每个元素都在外面套一个list,之后再套回来之前解开的那个套[]。这是一个比较形象的表述??
还是通过代码来描述吧:
a = np.arange(1, 11)
print(a[:])
输出的结果是:
[ 1 2 3 4 5 6 7 8 9 10]
- python中
:
表示全部意思。 - 之后通过,np.newaxis这参数的名字上可以知道,这个可以用来扩展一个新的轴。
- 第三个要注意了,这里讲np.newaxis放在了列的位置。(第二维度的位置)
a = np.arange(1, 11)
print(a[np.newaxis, :])
输出的结果是:
[[ 1 2 3 4 5 6 7 8 9 10]]
这个可以跟之前的进行对比,在行上进行了扩展。(即,按np.newaxis所在的维度进行移动,这个维度上的元素(抽象,整体化一下)都各自添加一个维度)
一行代码生成希尔伯特矩阵(Python)矩阵迅速扩展操作相关推荐
- 快速生成一个二维矩阵Python
简述 网上方法有很多种. 这里就先记录下,一般人都想不到的一种来试试看~ import numpy as np T = np.arange(count_h) + np.arange(count_t)[ ...
- python数据分析并生成报告_pandas_profiling :教你一行代码生成数据分析报告
分析报告全貌 什么是探索性数据分析 熟悉pandas的童鞋估计都知道pandas的describe()和info()函数,用来查看数据的整体情况,比如平均值.标准差之类,就是所谓的探索性数据分析-ED ...
- Python矩阵处理库—Numpy库的基本使用
一.简介 python用于实现数组.矩阵运算的第三方库. 二.创建数组 numpy中有两种方法可以创建数组:numpy.empty和numpy.zeros.numpy.empty用来创建一个空数组,n ...
- python矩阵左除_matlab学习笔记
Matlab学习笔记 运算: 1. 算术运算(在矩阵意义下进行) +:要求矩阵同型,对应元素相加减,如果用标量和矩阵相加减,不同型就凉凉提示错误,那就将矩阵每个元素和数字相加减 -:同上 *: ...
- python矩阵相乘例题_百道Python入门级练习题(新手友好)第一回合——矩阵乘法...
题目描述 [问题描述] 编写程序,完成3*4矩阵和4*3整数矩阵的乘法,输出结果矩阵. [输入形式] 一行,供24个整数.以先行后列顺序输入第一个矩阵,而后输入第二个矩阵. [输出形式] 先行后列顺序 ...
- python矩阵行数_python查看矩阵的行列号以及维数方式
print(X.shape):查看矩阵的行列号 print(len(X)):查看矩阵的行数 print(X.ndim):查看矩阵的维数 1 查看矩阵的行列号 2 查看矩阵的行数 3 查看矩阵的维数 补 ...
- python矩阵的切片——获取子矩阵
矩阵切片 矩阵为一个二维数列,所以矩阵的截取也需要包含行.列两个参数. 行.列参数切片 假设a是一个矩阵,a的截取就可写成:a[起始行 (包含): 终止行(不包含), 起始列 : 终止列],中括号中有 ...
- python中的[:-1] [:,:-1] python矩阵numpy中array的冒号 逗号
如何理解[:-1] [:,:-1] data = np.loadtxt('data.csv', delimiter = ',') X = data[:,:-1] #取所有行,取列到倒数 ...
- python 矩阵中的冒号 逗号
python 矩阵中的冒号 逗号 https://blog.csdn.net/Strive_0902/article/details/78225691?utm_source=blogxgwz0 pyt ...
最新文章
- HTTP Content-Length与分块传输
- 美国宇航局:十年内VR/AR设备将成为标配
- 假笨说-类初始化死锁导致线程被打爆!打爆!爆!
- maven报错: 错误的类文件:… 类文件具有错误的版本 52.0,应为 54.0
- 给php权限,PHP实现权限管理功能的方法
- 【三维激光扫描】实验02:StonexSiScan新建项目、加载点云数据
- 【渝粤题库】陕西师范大学200641高等数学作业(高起专、专升本)
- UIButton、UIImageView、UILabel的选择
- 目前最先进的目标检测能用于自动驾驶吗?这群德国人认真地做了个测评!
- Docker学习のDocker初识
- 继电反馈法自整定_用STM32F407玩控制—继电反馈法PID参数自动整定
- GoldenGate 1403错误解决方法
- 嵌入式程序员是难得的全栈型程序员
- 2.应用统计与随机过程第二章部分课上例题(平稳随机、各态历经)
- Hadoop-day01_(java代码模拟hadoop存储数据)
- 110配线架打法图解_110配线架怎么安装
- 基于卡方的独立性检验
- 五种常见的计算机高级语言,[转]计算机语言的种类总结
- 大数据精准营销有哪些特性呢?
- 一款能统计能存储日志设置超时时间的ping工具
热门文章
- 饿狼追兔的可视化matlab,高阶常微分方程模型饿狼追兔问题数学建模实例
- [综述]震荡的一年 2011年手机行业10大事件
- npoi 执行公式_NPOI 关于excel计算公式,且公式有外部引用
- 如何建word文档目录时,自动生成的目录正文从第一页开始
- 一篇项目走进生存分析(Survival Analysis)的世界【Python版
- 【技术】用Python预测2020年双十一交易额
- 南京工业大学校园网认证APP(自动识别验证码)
- 软硬件全开源,航芯方案分享 | 旋钮温控器方案
- CSS学习13之圆角边框及阴影
- Oka解压专家 Pro for Mac(压缩解压软件)