【问题标题】:Store all numpy matrix rows in a dataframe将所有 numpy 矩阵行存储在数据框中
【发布时间】:2021-08-17 21:58:00
【问题描述】:

对于给定的示例,假设我们有一个形状为 (1000,20) 的矩阵,我的目标是将所有 (1000,) 存储在数据框中。有什么解决办法吗?我怎样才能用 numpy 定义 (1000,) ?

我不确定我的提议是否可行。但如果有人能向我解释一下,我将不胜感激。

【问题讨论】:

  • 您可以将任何 2d numpy 数组传递给 pandas 数据框构造函数并指定列名...a = np.array([[1,2,3],[4,5,6],[7,8,9]]) ; d = pd.DataFrame(a, columns=['A', 'B', 'C'])

标签: python dataframe numpy matrix rows


【解决方案1】:

你可以使用 panda DataFrame 见链接https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html

class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

数据可以是numpyarry

【讨论】:

  • 感谢您的回复。其实,这不是我关心的。我不是在寻找将所有 numpy 矩阵存储在数据框中。我只关心第一个形状,即 (1000,)。如果您对如何使用 numpy 获得它有任何解决方案,我将不胜感激。我试过matrix.shape[0] and then it returns just a 1000 number while my aim is to get the numpy array (1000,)
  • @Andrea,试试matrix.shape[:1],这应该返回单个元素的元组,而不是整数。你也可以(matrix.shape[0],)
【解决方案2】:

让我们创建一个随机的 (1000,20) 数据框:

np.random.seed(42)
df = pd.DataFrame(np.random.rand(1000,20))
df.columns = ['col'+str(i) for i in range(1,21)]
df.shape

(1000, 20)

您可以从任何列中提取一个 (1000,) numpy 数组

>>> df['col1'].values
array([3.74540119e-01, 6.11852895e-01, 1.22038235e-01, 3.88677290e-01,
       8.63103426e-01, 3.14291857e-02, 8.07440155e-01, 9.62447295e-01,
       3.67783133e-01, 3.41066351e-01, 6.42031646e-01, 6.57612892e-01,
       ...
       7.14769358e-01, 9.29802764e-02, 9.46508378e-01, 4.98407543e-01,
       9.90723911e-01, 7.33644065e-01, 9.46458095e-01, 2.17144158e-01,
       3.38970837e-01, 9.19645673e-02, 5.22083809e-01, 8.89960122e-01])

>>> type(df['col1'].values)
numpy.ndarray

>>> df['col1'].values.shape
(1000,)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多