numpy 数组行专业和列专业

2024-01-08

我无法理解如何numpy存储其数据。考虑以下:

>>> import numpy as np
>>> a = np.ndarray(shape=(2,3), order='F')
>>> for i in xrange(6): a.itemset(i, i+1)
... 
>>> a
array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.]])
>>> a.flags
  C_CONTIGUOUS : False
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False

这说的是a是列主要(F_CONTIGUOUS)因此,在内部,a应如下所示:

[1, 4, 2, 5, 3, 6]

这就是本节中所说的glossary http://docs.scipy.org/doc/numpy/glossary.html#term-column-major。让我困惑的是,如果我尝试访问的数据a相反,我以线性方式得到:

>>> for i in xrange(6): print a.item(i)
... 
1.0
2.0
3.0
4.0
5.0
6.0

此时我不确定是什么F_CONTIGUOUSflag 告诉我们,因为它不遵守顺序。显然,Python 中的所有内容都是行优先,当我们想要以线性方式迭代时,我们可以使用迭代器flat http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#flat-iterator-indexing.

问题如下:鉴于我们有一个数字列表,请说:1, 2, 3, 4, 5, 6,我们怎样才能创建一个numpy形状数组(2, 3)按列主要顺序?这就是我怎样才能得到一个看起来像这样的矩阵

array([[ 1.,  3.,  5.],
       [ 2.,  4.,  6.]])

我真的希望能够线性迭代列表并将它们放入新创建的列表中ndarray。这样做的原因是因为我将读取按列主要顺序设置的多维数组的文件。


numpy 按行主顺序存储数据。

>>> a = np.array([[1,2,3,4], [5,6,7,8]])
>>> a.shape
(2, 4)
>>> a.shape = 4,2
>>> a
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])

如果更改形状,数据的顺序不会改变。

如果你添加一个“F”,你就可以得到你想要的。

>>> b
array([1, 2, 3, 4, 5, 6])
>>> c = b.reshape(2,3,order='F')
>>> c
array([[1, 3, 5],
       [2, 4, 6]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy 数组行专业和列专业 的相关文章

随机推荐

  • 为什么我无法使用 google chrome 登录 magento 后端

    我正在使用 magento 社区版 1 7 0 2 我无法登录到 magento 后端 我知道这个问题可能是因为 chrome 不接受 cookie 但如何解决这个问题 请帮忙 谢谢 If you 为 Magento 管理面板启用 http
  • 为什么 Sencha Touch 中没有同步回调?

    我希望能够在商店同步成功完成后向用户显示一条消息 但是 似乎没有任何方法可以使用回调或同步调用它 我有点惊讶这不是开箱即用的 因为这一定是一个常见问题 有什么解决方法吗 我们花了很长时间才找到适当的解决方案 最后 我们向商店的写入事件添加了
  • 如何在 FluentUI 模式控件中创建粘性(不可滚动)页眉/页脚?

    使用 React Fluent UI 模态控件 有人可以告诉我如何 确保页眉和页脚不是可滚动内容的一部分 即它们是 粘性 的 而如果窗口大小不足 位于它们之间的主要内容是可滚动的 随着内容变化 最小化模态大小的变化 即视口的窗口大小与最初一
  • 奇怪的运算符优先级与 ?? (空合并运算符)

    最近我遇到了一个奇怪的错误 我将一个字符串与一个字符串连接起来int 然后添加另一个字符串 我的代码基本上与此等效 int x 10 string s foo x 0 bar 令人惊讶的是 这将运行和编译 而不会出现警告或不兼容的类型错误
  • 转换日期 (05/12/2011 至 12th)

    我正在尝试将日期转换为日期数字 后跟 st nd rd 或 th 具体取决于日期 我是 JavaScript 新手 所以不知道从哪里开始 E g 2011 年 5 月 1 日 第一2011 年 5 月 2 日 第二次2011 年 5 月 3
  • 强制 selectize.js 仅显示以用户输入开头的选项

    我正在使用 selectize js 目前它看起来像这样 它不仅显示以 arm 开头的单词 还显示在其他位置包含 arm 作为子字符串的单词 或选项 我想强制该函数仅显示以 arm 开头的单词 或选项 我检查了使用文档https githu
  • Spark saveAsTextFile() 写入多个文件而不是一个[重复]

    这个问题在这里已经有答案了 我现在在我的笔记本电脑上使用 Spark 和 Scala 当我将 RDD 写入文件时 输出将写入两个文件 part 00000 和 part 00001 我如何强制 Spark Scala写入一个文件 我的代码目
  • 根据第二个文本文件从文本文件中删除重复项

    如何从文本文件中删除所有行 main txt 通过检查第二个文本文件 removethese txt 什么是有效的方法如果文件大于 10 100mb 使用苹果电脑 Example main txt 3 1 2 5 删除这些行 removet
  • iPhone SDK:如何创建一个在点击位置插入文本的 UITextView?

    我想创建一个 UITextView 您可以点击其中的任何位置并开始在该位置键入 该控件的默认行为是从最后一个字符结束处开始键入 因此 如果我有一个没有文本的 UITextView 并点击控件的中间 我想从那里开始输入 而不是从左上角开始 实
  • 如何合并两个大型数据集,同时在r中生成具有不同重复值的新列

    我有一个让我抓狂的问题 真的需要你的帮助 简化的问题是这样的 d1 lt data table v1 c a b c d d b a c a d b a v2 seq 1 12 V3 rep 1 4 times 3 d2 lt data t
  • Julia:为类型实现标准数学运算

    有没有办法在 julia 中为用户创建的类型实现基本算术 例如 type Foo bar Float32 foo Int32 end a Foo 3 23 23 b Foo 4 56 54 c a b 如果可能的话 我怎样才能做到这一点 提
  • 树视图闪烁,没有任何事件

    我有一个闪烁TreeView我知道这是一个常见问题 事情是TreeView没有事件 是的 我明白 当我从 a 递归添加节点时XmlDocument它有点闪烁 这是正常的 即使所有内容都加载后 我的也会闪烁 当我的鼠标悬停在节点上或单击节点时
  • SFINAE 在类型和非类型模板参数的情况下工作方式不同

    为什么这段代码有效 template lt typename T std enable if t
  • 获取数据表中某一列的行索引

    1 2 3 A B C D E F G H I System Data DataTable dt new DataTable dt Columns Add 1 dt Columns Add 2 dt Columns Add 3 dt Row
  • 在 Mercurial 中编写自定义日志关键字过滤器作为扩展

    我已经检查了有关如何编写 Mercurial 扩展的教程 我想知道如何专门为日志关键字添加过滤器 感谢帮助 我认为一个例子可以最好地解释它 from mercurial import templatefilters def upper s
  • VS2010项目依赖

    我在 VS2010 中有一个 C 项目和一个 C 项目 该项目将使用此 C 项目输出 它将其用于 p invoke 我想我可以通过编辑解决方案中的 项目依赖项 来确保 c 项目在 c 项目之前构建 但这似乎没有任何效果 我的构建服务器上的构
  • 无法在 Windows 10 上使用 docker 访问 localhost:8080

    当运行我的docker compose development yaml在我的电脑上 我无法连接到http localhost 8080 另外 我可以跑步docker compose f docker compose development
  • wpf如何绑定到DataContext存在?

    我在代码中动态设置数据上下文 我希望屏幕上的按钮能够启用 禁用 具体取决于是否DataContext null或不 当我分配 DataContext 时 我可以在代码中执行此操作 但如果我可以像这样绑定那就更好了 您应该能够使用DataTr
  • 通过 .htaccess 更改根文件夹

    我有一个与域名关联的共享托管帐户 根文件夹 如果术语错误请纠正我 设置为 以便服务器上的所有文件都是公共的 可以通过浏览器访问 我可以使用 htaccess 或其他东西将根文件夹更改为类似的内容 example com public 如果我
  • numpy 数组行专业和列专业

    我无法理解如何numpy存储其数据 考虑以下 gt gt gt import numpy as np gt gt gt a np ndarray shape 2 3 order F gt gt gt for i in xrange 6 a