相关疑难解决方法(0)

如何在numpy中保持向量的行/列方向?

来自Matlab/Octave的背景,我一直在努力学习numpy.反复绊倒的一件事是矢量和多维数组之间的区别.对于这个问题,我给我有一个特定的问题,但我会非常感激,如果有人也可以解释numpy的一维数组背后的更一般的画面,为什么你会希望他们摆在首位,如何在混合单维和多维数组等时避免麻烦.无论如何,问题是:

我有一个名为X的二维数组:

X = numpy.arange(10).reshape(2,5)
Run Code Online (Sandbox Code Playgroud)

我想取X的最后一列并将其存储为另一个名为Y的二维数组(即列向量).我能够为此提供的唯一方法是:

Y = numpy.atleast_2d(X[:,4]).T
Run Code Online (Sandbox Code Playgroud)

但由于以下几个原因,我不喜欢这样:

  1. 当X [:,4]中隐含方向时,我觉得我不应该告诉它转置矢量.

  2. 使用atleast_2D在代码中反复使用似乎非常麻烦,这种情况会出现很多.感觉我做错了什么.

那么,简而言之,有更好的方法吗?

谢谢.

python numpy

12
推荐指数
1
解决办法
4970
查看次数

在Python中创建垂直NumPy数组

我在Python中使用NumPy来处理数组.这是我用来创建垂直数组的方式:

import numpy as np
a = np.array([[1],[2],[3]])
Run Code Online (Sandbox Code Playgroud)

是否有一种简单而直接的方法来创建垂直数组?

python arrays numpy

11
推荐指数
1
解决办法
2万
查看次数

如何将(5,)numpy数组转换为(5,1)?

如何将(5,)numpy数组转换为(5,1)?

以及如何从(5,1)向后转换为(5,)?

(5,)数组的用途是什么,为什么省略一维?我的意思是为什么我们不总是使用(5,1)形式?

这是否仅在1D和2D数组上发生,还是在3D数组上发生,例如(2,3,)数组可以存在吗?

更新:

我设法通过(5,)转换为(5,1)

a= np.reshape(a, (a.shape[0], 1)) 
Run Code Online (Sandbox Code Playgroud)

但建议的变体看起来更简单:

a = a[:, None] or a = a[:, np.newaxis]
Run Code Online (Sandbox Code Playgroud)

要将(5,1)转换为(5,),可以使用np.ravel

a= np.ravel(a)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

5
推荐指数
1
解决办法
2615
查看次数

标签 统计

numpy ×3

python ×3

arrays ×2