简述

在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)矩阵迅速扩展操作相关推荐

  1. 快速生成一个二维矩阵Python

    简述 网上方法有很多种. 这里就先记录下,一般人都想不到的一种来试试看~ import numpy as np T = np.arange(count_h) + np.arange(count_t)[ ...

  2. python数据分析并生成报告_pandas_profiling :教你一行代码生成数据分析报告

    分析报告全貌 什么是探索性数据分析 熟悉pandas的童鞋估计都知道pandas的describe()和info()函数,用来查看数据的整体情况,比如平均值.标准差之类,就是所谓的探索性数据分析-ED ...

  3. Python矩阵处理库—Numpy库的基本使用

    一.简介 python用于实现数组.矩阵运算的第三方库. 二.创建数组 numpy中有两种方法可以创建数组:numpy.empty和numpy.zeros.numpy.empty用来创建一个空数组,n ...

  4. python矩阵左除_matlab学习笔记

    Matlab学习笔记 运算: 1.     算术运算(在矩阵意义下进行) +:要求矩阵同型,对应元素相加减,如果用标量和矩阵相加减,不同型就凉凉提示错误,那就将矩阵每个元素和数字相加减 -:同上 *: ...

  5. python矩阵相乘例题_百道Python入门级练习题(新手友好)第一回合——矩阵乘法...

    题目描述 [问题描述] 编写程序,完成3*4矩阵和4*3整数矩阵的乘法,输出结果矩阵. [输入形式] 一行,供24个整数.以先行后列顺序输入第一个矩阵,而后输入第二个矩阵. [输出形式] 先行后列顺序 ...

  6. python矩阵行数_python查看矩阵的行列号以及维数方式

    print(X.shape):查看矩阵的行列号 print(len(X)):查看矩阵的行数 print(X.ndim):查看矩阵的维数 1 查看矩阵的行列号 2 查看矩阵的行数 3 查看矩阵的维数 补 ...

  7. python矩阵的切片——获取子矩阵

    矩阵切片 矩阵为一个二维数列,所以矩阵的截取也需要包含行.列两个参数. 行.列参数切片 假设a是一个矩阵,a的截取就可写成:a[起始行 (包含): 终止行(不包含), 起始列 : 终止列],中括号中有 ...

  8. python中的[:-1] [:,:-1] python矩阵numpy中array的冒号 逗号

    如何理解[:-1]  [:,:-1] data = np.loadtxt('data.csv', delimiter = ',')     X = data[:,:-1]    #取所有行,取列到倒数 ...

  9. python 矩阵中的冒号 逗号

    python 矩阵中的冒号 逗号 https://blog.csdn.net/Strive_0902/article/details/78225691?utm_source=blogxgwz0 pyt ...

最新文章

  1. HTTP Content-Length与分块传输
  2. 美国宇航局:十年内VR/AR设备将成为标配
  3. 假笨说-类初始化死锁导致线程被打爆!打爆!爆!
  4. maven报错: 错误的类文件:… 类文件具有错误的版本 52.0,应为 54.0
  5. 给php权限,PHP实现权限管理功能的方法
  6. 【三维激光扫描】实验02:StonexSiScan新建项目、加载点云数据
  7. 【渝粤题库】陕西师范大学200641高等数学作业(高起专、专升本)
  8. UIButton、UIImageView、UILabel的选择
  9. 目前最先进的目标检测能用于自动驾驶吗?这群德国人认真地做了个测评!
  10. Docker学习のDocker初识
  11. 继电反馈法自整定_用STM32F407玩控制—继电反馈法PID参数自动整定
  12. GoldenGate 1403错误解决方法
  13. 嵌入式程序员是难得的全栈型程序员
  14. 2.应用统计与随机过程第二章部分课上例题(平稳随机、各态历经)
  15. Hadoop-day01_(java代码模拟hadoop存储数据)
  16. 110配线架打法图解_110配线架怎么安装
  17. 基于卡方的独立性检验
  18. 五种常见的计算机高级语言,[转]计算机语言的种类总结
  19. 大数据精准营销有哪些特性呢?
  20. 一款能统计能存储日志设置超时时间的ping工具

热门文章

  1. 饿狼追兔的可视化matlab,高阶常微分方程模型饿狼追兔问题数学建模实例
  2. [综述]震荡的一年 2011年手机行业10大事件
  3. npoi 执行公式_NPOI 关于excel计算公式,且公式有外部引用
  4. 如何建word文档目录时,自动生成的目录正文从第一页开始
  5. 一篇项目走进生存分析(Survival Analysis)的世界【Python版
  6. 【技术】用Python预测2020年双十一交易额
  7. 南京工业大学校园网认证APP(自动识别验证码)
  8. 软硬件全开源,航芯方案分享 | 旋钮温控器方案
  9. CSS学习13之圆角边框及阴影
  10. Oka解压专家 Pro for Mac(压缩解压软件)