[Numpy-discussion] simple question

Keith Goodman kwgoodman at gmail.com
Thu Jul 6 16:43:00 EDT 2006


On 7/6/06, Travis Oliphant <oliphant at ee.byu.edu> wrote:
> Mathew Yeates wrote:
>
> >Not working.
> >A[row,all_dates == 10] = -1 where all_dates is a matrix with column
> >length of 14 [[960111,..,..
> >and A is a matrix with same column length
> >
> >I get
> >IndexError: arrays used as indices must be of integer type
> >
> >when I print out all_dates == 10
> >I get
> >[True True True True True True True True True False False False True True]]
> >
> >I experimented with "<" instead of "==" but I still get boolean values
> >as indices.
> >
> >Any help?
> >
> >
> What version are you using?  Can you give an example that shows the
> error.  It's hard to guess the type of all the variables.  The following
> works for me.
>
> import numpy
> print numpy.__version__
> A = numpy.matrix(rand(3,14))
> all_dates = array([10,10,1,10,1,10,0,10,0,10,0,1,10,1])
> row = 2
> A[row, all_dates == 10]


This is what NASA is doing (and what I would like to do):

>> A[row, asmatrix(all_dates == 10)]
---------------------------------------------------------------------------
exceptions.ValueError                                Traceback (most
recent call last)

/home/kwg/<ipython console>

/usr/local/lib/python2.4/site-packages/numpy/core/defmatrix.py in
__getitem__(self, index)
    122
    123     def __getitem__(self, index):
--> 124         out = N.ndarray.__getitem__(self, index)
    125         # Need to swap if slice is on first index
    126         # or there is an integer on the second

ValueError: too many indices for array




More information about the NumPy-Discussion mailing list