【问题标题】:How to address elements linearly in Python? [duplicate]如何在 Python 中线性寻址元素? [复制]
【发布时间】:2016-02-17 18:41:29
【问题描述】:

在 Matlab 中可以线性访问矩阵的元素:

>> A=[1 2 3; 4 5 6]
A =
     1     2     3
     4     5     6
>> A(1)
ans =
     1
>> A(2)
ans =
     4
>> A(3)
ans =
     2

看起来 Matlab 确实会即时重塑矩阵。

是否可以在 Python 中做类似的事情?

如果我直接这样做,它不起作用:

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

A[1]
Out[2]: [4, 5, 6]

【问题讨论】:

  • MATLAB 不会即时重塑。数据存储在单个(主要列)列中,并以适当的形状显示。使用单个下标进行索引称为linear indexing。请注意,Python 是行优先的。

标签: python matlab matrix-indexing


【解决方案1】:

Python 索引从 0 开始。对于类似 Matlab 的功能,请使用 Numpy:

import numpy as np
A = np.array([[1, 2], [3, 4]])

A.flatten()[0]

产量:1

【讨论】:

    【解决方案2】:

    尝试使用模块 NumPy 中的 np.ravel(用于 1D 视图)或 np.flatten(用于 1D 副本)或 np.flat(用于 1D 迭代器)。

    更多信息在这里: From ND to 1D arrays

    【讨论】:

      猜你喜欢
      • 2011-12-02
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 2022-12-15
      • 2014-07-25
      相关资源
      最近更新 更多