# IndexError when using Enumerated Indexes in NumPy

## Question:

I am trying to create a fifth-order FIR filter in Python described by the following difference equation (apologies dark mode users but LaTeX is not yet supported on SO):

```
def filter(x):
h = np.array([-0.0147, 0.173, 0.342, 0.342, 0.173, -0.0147])
y = np.zeros_like(x)
buf_array = np.zeros_like(h)
buf = 0.0
for n in enumerate(x):
for k in enumerate(h):
buf = h[k]*x[n-k]
buf_array[k] = buf
y[n] = np.sum(buf_array)
return y
```

When using the filter, the Traceback leads me to the following line:

```
10 for n in enumerate(x):
11 for k in enumerate(h):
---> 12 buf = h[k]*x[n-k]
13 buf_array[k] = buf
15 y[n] = np.sum(buf_array)
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
```

I have tried playing around with indexes and all, but have not managed to understand why this error is being caused.

TIA

## Answers:

As someone suggested in the comments, this case use requires looping over indexes and elements on their own, as using `for index in enumerate(ndarray)`

will result in `index`

being a tuple rather than being an integer. Furthermore, using `for index, item in enumerate(ndarray)`

is suggested, as shown below:

```
# Filter function
def filter(x):
h = np.array([-0.0147, 0.173, 0.342, 0.342, 0.173, -0.0147])
y = np.zeros_like(x)
buf_array = np.zeros_like(h)
buf = 0.0
for n, n_i in enumerate(x):
for k, k_i in enumerate(h):
i = n-k
buf = h[k]*x[i]
buf_array[k] = buf
y[n] = np.sum(buf_array)
return y
```