当前位置: 首页 > 面试题库 >

numpy数组行专业和列专业

朱经武
2023-03-14
问题内容

我在了解如何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]

这就是本词汇表中所说的。令我困惑的是,如果我尝试以a线性方式访问的数据,则会得到:

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

在这一点上,我不确定该F_CONTIGUOUS标志告诉我们什么,因为它不遵守该顺序。显然,python中的所有内容都是行专业的,当我们想以线性方式进行迭代时,可以使用迭代器flat

问题如下: 假设我们有一个数字列表,例如: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]])


 类似资料:
  • 新手入门 - 专业术语 操作系统 访客浏览您网站时使用的操作系统名称。 百度推广 百度推广给您网站带来的流量及转化情况。您可以及时了解百度各类推广方式的效果以及这些效果是否达到了您预期的业务目标,从而帮助您更有针对性地改善百度推广方案。 DEF 返回 Flash版本 访客浏览器程序中安装的 Flash 版本。 地域分布 各个地域带来的流量及转化情况。您也可以选择来源过滤,查看特定来源下,各地域的流

  • 本文介绍了Electron开发时常用的专业属于. ASAR 含义:ASAR即Atom Shell 程序包 ​asar类似常用的 tar 格式文件,Electron 无需解压即可读取其中的文件。 ​asar的使用方法,通常用来将文档打包在一个.asar中,防止js,html,css等文件直接暴露在外. 简单例子: 1 安装:$ npm install asar -g 2 压缩:$ asar pack

  • alphabeticfield 字母域 characterfield 字符域 binary digit 二进制数 chatter set 字符集 bit 位 cin(standard input) 标准输人 byte 字节 clog(standarderrorbuffeted) 缓冲标准错误流 cerr(standard err unbuffered) 无缓冲标准错误流 close a file

  • abort() catch an exception 捕获一个异常 assert macro assert 宏 catch argument catch参数 auto_ptr catch block catch块 bad_alloc catch(...) bad_cast dynamic_cast bad_typeid empty exception specification 空异常指定 cat

  • angle brackets 尖括号 keyword temPlate 关键字 template class template 类模板 non-type parameter in a templateheader 模板首 class template name 类模板名 部中的无类型参数 formal parameter in a template header 模板首部中的形式参数 overlo

  • bad member function bad 成员函数 end-of-file 文件尾 badbit endl cerr eof member function eof 成员函数 cin eofbit clear member function clear 成员函数 extensibility 可扩展性 clog fail member function fail 成员函数 cout failb