Modeling and plotting neuron responses
You could start by adding the necessary imports as well:

import numpy as np
from matplotlib import pyplot as plt


Since you already said how you can improve performance here (it's not
going to be easier to read, at least not to people who don't "live"
matrixes), I'm going to sketch the idea, although at least one step
isn't clear to me as well.  Which is to say, I find the function plus
for-loop way more readable than the following.

Now, instead of computing the response one by one, just vectorise each
step in rec_lin.  With the following rewrite, which is a tiny bit more
structured:

def rec_lin_neuron(x_inter, max_fire, gain_sign, x_max=1.0):
    def rec_lin(x):
        factor = max_fire/(x_max-x_inter)
        fire = np.maximum(np.dot(gain_sign, x) * factor - x_inter * factor,
                          np.zeros(x.size))
        return np.minimum(fire, max_fire)
    return rec_lin


That would be:

diffs = np.subtract(np.repeat(1.0, n_neurons), x_cepts) # aka x_max-x_inter
factors = np.divide(max_firing_rates, diffs) # aka factor


Similarly for the rest of that function, with the exception of np.dot,
where it's not clear to me how you'd run that function element-wise
against the input array, maybe you already know the answer, otherwise
I'll try to update it later.

The maximum and minimum for the matrixes should be np.amax and
np.amin.