Str*_*247 4 python arrays numpy
当我试图获得像这样的数组的第一个元素
import numpy
a = numpy.array([1,2])
a[:,0]
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-3-ed371621c46c> in <module>()
----> 1 a[:,0]
IndexError: too many indices
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法来执行此操作,同时仍然使用切片,因为完整的代码打开并读取许多不同的文件,numpy.loadtxt()
所有文件都有两列,从1到N不等.
Ale*_*ley 11
你的数组a = numpy.array([1,2])
只有一个维度:它的形状是(2,)
.但是,切片 a[:,0]
指定了两个维度的选择.这会导致NumPy引发错误.
要从你那里得到第一个元素,a
只需要编写a[0]
(这里只选择一个维度).
查看您的其他问题,如果您希望确保语法a[:,0]
始终有效,则可以确保a
始终具有两个维度.np.loadtxt
使用ndmin
参数加载数组时,例如:
np.loadtxt(F, skiprows=0, ndmin=2)
Run Code Online (Sandbox Code Playgroud)
如上所述,您有一个一维数组,并试图用二维对其进行切片。
要添加的一件事(在过去我发现非常有用)是numpy允许您轻松地将1D数组转换为2D数组(行或列):
>>> a = np.array([0,1,2])
>>> a.shape
(3,)
>>> a_row = a[None,:]
>>> a_row.shape
(1,3)
>>> a_col = a[:,None]
>>> a_col.shape
(3,1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38660 次 |
最近记录: |