[Tutor] Help with a Conversion

Steven D'Aprano steve at pearwood.info
Thu Jan 5 18:18:29 EST 2017

```On Thu, Jan 05, 2017 at 08:29:33AM -0500, S. P. Molnar wrote:

[...]
> To change the frequency to wave length I did the following:
>
>
> p=1/1e7
> wave_length = p*np.array(frequency)
>
> (The relationship between wavelength and frequency is: wavelength =
> 1.0e7/frequency, where 1e7 is the speed of light)
>
>
> Apparently whhat I have managed to do is divide each element of the
> frequency list by 1/1e7.

Indeed :-)

This is a matter of arithmetic:

Let p = 1/x
then p*f = (1/x)*f = f/x

So you have divided each frequency by x, namely 1e7.

What you want is:

x/f

which divides x (1e7) by the frequency.

The interactive interpreter is very good for exploring simple questions
like this. If you need help starting the interactive interpreter, please
ask, although I haven't used Spyder for many years and I'm not familiar
with it. But in the regular Python interpreter, I can do this:

py> import numpy as np
py> data = np.array([1, 2, 3])
py> data
array([1, 2, 3])
py> factor = 1/10.0
py> factor*data
array([ 0.1,  0.2,  0.3])
py> factor/data
array([ 0.1       ,  0.05      ,  0.03333333])

(lines starting with "py>" is the code I have typed).

So to get the result you want, you should be able to do this:

wave_length = 1e7/np.array(frequency)

--
Steve
```