问题描述
当我尝试像这样只获取数组的第一个元素时
When I try to get just the first element of an array like this
import numpy
a = numpy.array([1,2])
a[:,0]
我收到此错误
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-3-ed371621c46c> in <module>()
----> 1 a[:,0]
IndexError: too many indices
我想找到一种方法来做到这一点,同时仍然使用切片,因为完整的代码使用 numpy.loadtxt()
打开并读取许多不同的文件,所有文件都有两列,从 1 到一些不等N.
I would like to find a way to do this while still using slicing because the full code opens and reads many different files using numpy.loadtxt()
all having two columns which vary from 1 to some N.
推荐答案
你的数组 a = numpy.array([1,2])
只有一个维度:它的形状是(2,)
.但是,您的切片 a[:,0]
指定了 两个 维度的选择.这会导致 NumPy 引发错误.
Your array a = numpy.array([1,2])
only has one dimension: its shape is (2,)
. However, your slice a[:,0]
specifies selections for two dimensions. This causes NumPy to raise the error.
要从 a
中获取第一个元素,您只需编写 a[0]
(此处仅选择一个维度).
To get the first element from a
you only need to write a[0]
(a selection for only one dimension is being made here).
查看您的其他问题,如果您想确保语法 a[:,0]
始终有效,您可以确保 a
始终具有两个维度.使用 np.loadtxt
加载数组时,请使用 ndmin
参数,例如:
Looking at your other question, if you want to ensure that the syntax a[:,0]
always works, you could ensure that a
always has two dimensions. When loading an array with np.loadtxt
use the ndmin
parameter, e.g.:
np.loadtxt(F, skiprows=0, ndmin=2)
这篇关于索引错误:索引过多.1 行 2 列的 Numpy 数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!