# Slide 9
mp = 0.115
vp = 35.0
mo = 0.265
vo = 0.0
v = (mp * vp + mo * vo) / (mp + mo)
print v
10.5921052632
# Slide 10
mp = 0.115
vp = 114.13
mo = 0.265
vo = 0.0
v = (mp * vp + mo * vo) / (mp + mo)
print v
34.5393421053
# Slide 11
mp = 0.115
vp = 114.13 * 0.44704 # mph to m/s
mo = 0.265
vo = 0.0
v = (mp * vp + mo * vo) / (mp + mo)
print v
15.4404674947
# Slide 12
mp = 0.115 # kg
vp = 114.13 * 0.44704 # mph to m/s
mo = 0.265 # kg
vo = 0.0 # m/s
v = (mp * vp + mo * vo) / (mp + mo)
print v
15.4404674947
# Slide 15
import quantities as pq
mp = 0.115 * pq.kg
vp = 35.0 * (pq.m / pq.s)
mo = 0.265 * pq.kg
vo = 0.0 * (pq.m / pq.s)
v = (mp * vp + mo * vo) / (mp + mo)
print v
10.5921052632 m/s
# Slide 16
import quantities as pq
mp = 0.115 * pq.kg
vp = 114.13 * (pq.mi / pq.h)
mo = 0.265 * pq.kg
vo = 0.0 * (pq.m / pq.s)
v = (mp * vp + mo * vo) / (mp + mo)
print v
34.5393421053 mi/h
# Slide 17
import quantities as pq
mp = 0.115 * pq.kg
vp = 114.13 * (pq.mi / pq.h)
mo = 0.265 * pq.kg
vo = 0.0 * (pq.m / pq.s)
v = (mp * vp + mo * vo) / (mp + mo)
print v.rescale(pq.km / pq.h)
55.5856829811 km/h
# Slide 18
import quantities as pq
mp = 6.0 * pq.ounce
vp = 114.13 * (pq.mi / pq.h)
mo = 0.265 * pq.kg
vo = 0.0 * (pq.m / pq.s)
v = (mp * vp + mo * vo) / (mp + mo)
print v.rescale(pq.km / pq.h)
71.8057931081 km/h
# Slide 20
import quantities as pq
mp = 6.0 * pq.ounce
vp = 114.13 * (pq.mi / pq.h)
mo = 0.265 * pq.kg
vo = 0.0
v = (mp * vp + mo * vo) / (mp + mo)
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) /Users/Trevor/Programming/git/pyconca2012/<ipython-input-11-4df6aa16c07c> in <module>() 5 mo = 0.265 * pq.kg 6 vo = 0.0 ----> 7 v = (mp * vp + mo * vo) / (mp + mo) /Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/site-packages/quantities/quantity.pyc in g(self, other, *args) 61 other = other.view(type=Quantity) 62 if other._dimensionality != self._dimensionality: ---> 63 other = other.rescale(self.units) 64 return f(self, other, *args) 65 return g /Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/site-packages/quantities/quantity.pyc in rescale(self, units) 194 raise ValueError( 195 'Unable to convert between units of "%s" and "%s"' --> 196 %(from_u._dimensionality, to_u._dimensionality) 197 ) 198 return Quantity(cf*self.magnitude, to_u) ValueError: Unable to convert between units of "kg" and "oz*mi/h"
# Slides 24-25
import quantities as pq
bags = pq.UnitQuantity('milk bags', pq.L * (4. / 3.))
person = pq.UnitQuantity('person', pq.dimensionless * 1)
need = 200 * (pq.mL / person)
need *= 250 * person
print need
print need.rescale(pq.L)
print need.rescale(bags)
import numpy as np
print np.ceil(need.rescale(bags))
50000.0 mL 50.0 L 37.5 milk bags 38.0 milk bags
# Slide 34
import numpy as np
import quantities as pq
def load_spikes(filename):
# Dummy implementation: just make a spike train
spikes = np.random.uniform(0, 20 * pq.s, size=20 * pq.s * 10 * pq.Hz)
spikes = np.append(spikes, np.random.normal(11.0 * pq.s, size=10 * pq.Hz * 5))
return np.sort(spikes)
def time_slice(spikes, tstart, tend):
return spikes[np.logical_and(tstart <= spikes, spikes < tend)]
def raster_plot(spikes):
plt.scatter(spikes, np.zeros(spikes.shape), color='k', marker='|')
plt.xlim(10.5 * pq.s, 13.0 * pq.s)
plt.xlabel("Time in " + spikes.dimensionality.string)
plt.tight_layout()
spikes = load_spikes('spikes.csv') * pq.s
event = 11 * pq.s
window = (-0.5, 2) * pq.s
perievent = time_slice(spikes, *(event + window))
raster_plot(perievent)
# Slide 35
import numpy as np
import quantities as pq
def load_spikes(filename):
# Dummy implementation: just make a spike train
spikes = np.random.uniform(0, 20 * pq.s, size=20 * pq.s * 10 * pq.Hz)
spikes = np.append(spikes, np.random.normal(11.0 * pq.s, size=10 * pq.Hz * 5))
return np.sort(spikes)
def time_slice(spikes, tstart, tend):
return spikes[np.logical_and(tstart <= spikes, spikes < tend)]
def raster_plot(spikes):
plt.scatter(spikes, np.zeros(spikes.shape), color='k', marker='|')
plt.xlim(10500 * pq.ms, 13000 * pq.ms) # This also needs changing
plt.xlabel("Time in " + spikes.dimensionality.string)
plt.tight_layout()
spikes = (load_spikes('spikes.csv') * pq.s).rescale(pq.ms)
event = 11 * pq.s
window = (-0.5, 2) * pq.s
perievent = time_slice(spikes, *(event + window))
raster_plot(perievent)
# Slide 36
import numpy as np
import quantities as pq
def load_spikes(filename):
# Dummy implementation: just make a spike train
spikes = np.random.uniform(0, 20 * pq.s, size=20 * pq.s * 10 * pq.Hz)
spikes = np.append(spikes, np.random.normal(11.0 * pq.s, size=10 * pq.Hz * 5))
return np.sort(spikes)
def bin_spikes(spikes, binsize, tstart, tend):
binsize.units = tstart.units
bins = np.arange(
tstart, tend + binsize, binsize)
return np.histogram(spikes, bins=bins)[0]
def binned_plot(bins):
plt.bar(range(len(bins)), bins)
plt.xlabel("Time bin")
plt.xlim(0, bins.shape[0])
spikes = load_spikes('spikes.csv') * pq.s
event = 11 * pq.s
window = (-0.5, 2) * pq.s
binned = bin_spikes(spikes, 20 * pq.ms, *(event + window))
binned_plot(binned)