0. 多维数组的显示问题

>> X = np.reshape(np.arange(24), (2, 3, 4))# 也即 2 行 3 列的 4 个平面(plane)>> X
array([[[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]],[[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]])

再来分别看每一个平面的构成:

>> X[:, :, 0]
array([[ 0,  4,  8],[12, 16, 20]])>> X[:, :, 1]
array([[ 1,  5,  9],[13, 17, 21]])>> X[:, :, 2]
array([[ 2,  6, 10],[14, 18, 22]])>> X[:, :, 3]
array([[ 3,  7, 11],[15, 19, 23]])

也即在对 np.arange(24)(0, 1, 2, 3, ..., 23) 进行重新的排列时,在多维数组的多个轴的方向上,先分配最后一个轴(对于二维数组,即先分配行的方向,对于三维数组即先分配平面的方向)

1. None 索引 ⇒ 升维

>> A = np.random.rand(2, 3)
>> A.shape
(2L, 3L)
>> A[None, :].shape
(1L, 2L, 3L)
>> A[None, :, :].shape
(1L, 2L, 3L)

2. np.apply_along_axis

这是一个强大的函数,在指定轴上,按指定的函数进行操作;

>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> np.apply_along_axis(np.diff,0,b)# 在列方向进行差分的动作
array([[3, 3, 3],[3, 3, 3]])
>>> np.apply_along_axis(np.diff,1,b)
array([[1, 1],[1, 1],[1, 1]])>>> b = np.array([[8,1,7], [4,3,9], [5,2,6]])
>>> np.apply_along_axis(sorted, 1, b)
array([[1, 7, 8],[3, 4, 9],[2, 5, 6]])

这个函数真正的意义在于什么,除了更精细化,customized的处理行和列外,它对一些不具备axis参数的函数,使其具备逐行或者逐列处理的能力 np.bincount(),而不必逐行逐列地进行遍历。

P = np.asarray([clf.predict(X) for clf in self.classifiers_])
maj_vote = np.apply_along_axis(lambda col: np.argmax(np.bincount(col, weights=self.weights)), axis=0, arr=P)

numpy 维度与轴的问题相关推荐

  1. 一文弄懂Numpy中ndarray的维度(dimension)/轴数(axis/axes)问题

    Numpy库的核心是ndarray,实际上就是N维数组(N-dimensional array),关于这个数据对象的详细介绍,参考官方文档最为合适.有一点要注意的是,ndarray的内置方法只有30多 ...

  2. tensor的维度(轴)—axis的解释

    张量,或tensor,可以看作是向量.矩阵的自然推广,我们用张量来表示广泛的数据类型. 张量的阶数有时候也称为维度,或者轴,轴这个词翻译自英文axis. 譬如一个矩阵[[1,2],[3,4]],是一个 ...

  3. numpy维度交换_numpy之转置(transpose)和轴对换

    转置(transpose)和轴对换 转置可以对数组进行重置,返回的是源数据的视图(不会进行任何复制操作). 转置有三种方式,transpose方法.T属性以及swapaxes方法. 1 .T,适用于一 ...

  4. numpy维度交换_15年!NumPy论文终出炉,还登上了Nature

    NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程.主要特性和数组编程等.这篇文章现已发表在 Nature 上. 机器之心报道,编辑:魔王.杜伟.小舟. NumPy 是什么?它是大名鼎鼎 ...

  5. numpy维度交换_“lazy”的transpose()函数——从numpy 数组的内存布局讲起

    1 数组的两种内存布局方式 行优先与列优先 首先我们回顾一下,矩阵数据在内存中的两种布局方式: 行优先(row-major):以行为优先单位,在内存中逐行存储/读取:对于多维,意味着当线性扫描内存时, ...

  6. numpy维度交换_数据分析-gt;基本操作numpy(1)

    1.Numpy介绍与安装 Numpy是什么? Numpy(Numerical Python)是目前Python数值计算中最为重要的基础包.大多数计算包都提供了基于Numpy的科学函数功能,将Numpy ...

  7. python 第一行非零_python – 沿着已排序的二维numpy数组的轴查找第一个非零值

    使用 np.where的速度相当快: >>> a array([[0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, ...

  8. numpy维度交换_如何将2个不同维度的numpy数组相乘

    默认情况下,ND数组(例如A)与一维1(B)的乘法是在最后一个轴上执行的,这意味着乘法A * B仅在下有效 A.shape[-1] == len(B) 要在另一个轴上将A与B相乘而不是-1,一种解决方 ...

  9. numpy中的转置Transpose和.T以及轴对换swapaxis

    简 介: 本文对于 numpy中的转置Transpose和.T以及轴对换swapaxis 中关于numpy矩阵的轴交换函数进行了测试.并对于深度学习中的图像数据进行处理. 参考文章:https://b ...

最新文章

  1. nginx+uWSGI+django+virtualenv+supervisor发布web服务器
  2. POJ 2533 Longest Ordered Subsequence
  3. C#窗体内控件大小随窗体等比例变化
  4. 【JQuery】jQuery中的常用方法小结
  5. 迷失lost结局什么意思_蒙上你的眼结局是什么意思?最后谁活下来了
  6. 基于tcp的协议需要设计数据校验码吗_C#与宇电温控表自定义协议通信实例
  7. mysql建表的字段类型和约束条件
  8. tomcat-内存溢出java.lang.OutOfMemoryErrory:PermGen space解决方法
  9. 关于Parse库的配置问题
  10. jmeter--解决登录接口只执行一次和多接口依赖的问题(使用事务控制器和循环控制器)
  11. 详解Nginx Rewrite标记last和break的区别
  12. python按钮点击事件wx_wx.python事件的绑定
  13. Vue结合vant框架实现通讯录a-z排序
  14. 计算机与经济学:天造地设的一对
  15. Python进行Excel数据统计
  16. windows10 20H2版本微软账户登录不上解决方法
  17. Java 的核心目的和并发编程
  18. PHP7都有哪些新特性
  19. Float32Array基础用法
  20. Monkey框架(基础知识篇) - monkey事件介绍

热门文章

  1. php mysql调用crontab_PHP中如何实现crontab代码
  2. php轮询 ob_start,详解PHP ob_start()函数的功能要点
  3. python_generator生成器
  4. git忽略文件或者文件夹
  5. 五、Mysql中JSON类型
  6. 简要描述安装配置apache的一个开源Hadoop集群
  7. Linux简单基本命令
  8. python决策树多分类代码_绘制决策树分类的多类ROC曲线
  9. tkinter的可视化拖拽工具_拒绝丑图表,教你用最简单的方法做最炫酷的可视化图表!附教程...
  10. Visual C# .NET2003语言的改变