# Numerical arrays
import numpy as np
# Plotting.
import matplotlib.pyplot as plt
# Plots styles.
plt.style.use('ggplot')
# Plot size.
plt.rcParams['figure.figsize'] = (12, 8)
# Create two points.
x = np.array([4.0, 16.0])
y = np.array([6.0, 12.0])
x, y
(array([ 4., 16.]), array([ 6., 12.]))
# Plot the points.
plt.plot(x, y, 'ro')
# Give ourselves some space.
plt.xlim([-5.0, 25.0])
plt.ylim([-5.0, 25.0]);
# Plot a straight line.
l = np.linspace(-5.0, 25.0, 100)
plt.plot(l, 0.5 * l + 4.0, 'g--')
# Plot a straight line segment.
l = np.linspace(4.0, 16.0, 10)
plt.plot(l, 0.5 * l + 4.0, 'b-')
# Plot the points.
plt.plot(x, y, 'ro')
# Give ourselves some space.
plt.xlim([-5.0, 25.0])
plt.ylim([-5.0, 25.0]);
# Plot a straight line.
l = np.linspace(-3.0, 20.0, 100)
plt.plot(l, 0.5 * l + 4.0, 'g-')
# Plot a parabola.
plt.plot(l, 10.0 * (l**2) - 199.5 * l + 644.0, 'b-')
# Plot a cubic.
plt.plot(l, (l**3) - 20.0625 * l**2 + 65.75 * l, 'y-')
# Plot the points.
plt.plot(x, y, 'ro');
# Set up some x values.
x = np.linspace(0.0, 10.0, 1000)
x
array([ 0. , 0.01001001, 0.02002002, 0.03003003, 0.04004004, 0.05005005, 0.06006006, 0.07007007, 0.08008008, 0.09009009, 0.1001001 , 0.11011011, 0.12012012, 0.13013013, 0.14014014, 0.15015015, 0.16016016, 0.17017017, 0.18018018, 0.19019019, 0.2002002 , 0.21021021, 0.22022022, 0.23023023, 0.24024024, 0.25025025, 0.26026026, 0.27027027, 0.28028028, 0.29029029, 0.3003003 , 0.31031031, 0.32032032, 0.33033033, 0.34034034, 0.35035035, 0.36036036, 0.37037037, 0.38038038, 0.39039039, 0.4004004 , 0.41041041, 0.42042042, 0.43043043, 0.44044044, 0.45045045, 0.46046046, 0.47047047, 0.48048048, 0.49049049, 0.5005005 , 0.51051051, 0.52052052, 0.53053053, 0.54054054, 0.55055055, 0.56056056, 0.57057057, 0.58058058, 0.59059059, 0.6006006 , 0.61061061, 0.62062062, 0.63063063, 0.64064064, 0.65065065, 0.66066066, 0.67067067, 0.68068068, 0.69069069, 0.7007007 , 0.71071071, 0.72072072, 0.73073073, 0.74074074, 0.75075075, 0.76076076, 0.77077077, 0.78078078, 0.79079079, 0.8008008 , 0.81081081, 0.82082082, 0.83083083, 0.84084084, 0.85085085, 0.86086086, 0.87087087, 0.88088088, 0.89089089, 0.9009009 , 0.91091091, 0.92092092, 0.93093093, 0.94094094, 0.95095095, 0.96096096, 0.97097097, 0.98098098, 0.99099099, 1.001001 , 1.01101101, 1.02102102, 1.03103103, 1.04104104, 1.05105105, 1.06106106, 1.07107107, 1.08108108, 1.09109109, 1.1011011 , 1.11111111, 1.12112112, 1.13113113, 1.14114114, 1.15115115, 1.16116116, 1.17117117, 1.18118118, 1.19119119, 1.2012012 , 1.21121121, 1.22122122, 1.23123123, 1.24124124, 1.25125125, 1.26126126, 1.27127127, 1.28128128, 1.29129129, 1.3013013 , 1.31131131, 1.32132132, 1.33133133, 1.34134134, 1.35135135, 1.36136136, 1.37137137, 1.38138138, 1.39139139, 1.4014014 , 1.41141141, 1.42142142, 1.43143143, 1.44144144, 1.45145145, 1.46146146, 1.47147147, 1.48148148, 1.49149149, 1.5015015 , 1.51151151, 1.52152152, 1.53153153, 1.54154154, 1.55155155, 1.56156156, 1.57157157, 1.58158158, 1.59159159, 1.6016016 , 1.61161161, 1.62162162, 1.63163163, 1.64164164, 1.65165165, 1.66166166, 1.67167167, 1.68168168, 1.69169169, 1.7017017 , 1.71171171, 1.72172172, 1.73173173, 1.74174174, 1.75175175, 1.76176176, 1.77177177, 1.78178178, 1.79179179, 1.8018018 , 1.81181181, 1.82182182, 1.83183183, 1.84184184, 1.85185185, 1.86186186, 1.87187187, 1.88188188, 1.89189189, 1.9019019 , 1.91191191, 1.92192192, 1.93193193, 1.94194194, 1.95195195, 1.96196196, 1.97197197, 1.98198198, 1.99199199, 2.002002 , 2.01201201, 2.02202202, 2.03203203, 2.04204204, 2.05205205, 2.06206206, 2.07207207, 2.08208208, 2.09209209, 2.1021021 , 2.11211211, 2.12212212, 2.13213213, 2.14214214, 2.15215215, 2.16216216, 2.17217217, 2.18218218, 2.19219219, 2.2022022 , 2.21221221, 2.22222222, 2.23223223, 2.24224224, 2.25225225, 2.26226226, 2.27227227, 2.28228228, 2.29229229, 2.3023023 , 2.31231231, 2.32232232, 2.33233233, 2.34234234, 2.35235235, 2.36236236, 2.37237237, 2.38238238, 2.39239239, 2.4024024 , 2.41241241, 2.42242242, 2.43243243, 2.44244244, 2.45245245, 2.46246246, 2.47247247, 2.48248248, 2.49249249, 2.5025025 , 2.51251251, 2.52252252, 2.53253253, 2.54254254, 2.55255255, 2.56256256, 2.57257257, 2.58258258, 2.59259259, 2.6026026 , 2.61261261, 2.62262262, 2.63263263, 2.64264264, 2.65265265, 2.66266266, 2.67267267, 2.68268268, 2.69269269, 2.7027027 , 2.71271271, 2.72272272, 2.73273273, 2.74274274, 2.75275275, 2.76276276, 2.77277277, 2.78278278, 2.79279279, 2.8028028 , 2.81281281, 2.82282282, 2.83283283, 2.84284284, 2.85285285, 2.86286286, 2.87287287, 2.88288288, 2.89289289, 2.9029029 , 2.91291291, 2.92292292, 2.93293293, 2.94294294, 2.95295295, 2.96296296, 2.97297297, 2.98298298, 2.99299299, 3.003003 , 3.01301301, 3.02302302, 3.03303303, 3.04304304, 3.05305305, 3.06306306, 3.07307307, 3.08308308, 3.09309309, 3.1031031 , 3.11311311, 3.12312312, 3.13313313, 3.14314314, 3.15315315, 3.16316316, 3.17317317, 3.18318318, 3.19319319, 3.2032032 , 3.21321321, 3.22322322, 3.23323323, 3.24324324, 3.25325325, 3.26326326, 3.27327327, 3.28328328, 3.29329329, 3.3033033 , 3.31331331, 3.32332332, 3.33333333, 3.34334334, 3.35335335, 3.36336336, 3.37337337, 3.38338338, 3.39339339, 3.4034034 , 3.41341341, 3.42342342, 3.43343343, 3.44344344, 3.45345345, 3.46346346, 3.47347347, 3.48348348, 3.49349349, 3.5035035 , 3.51351351, 3.52352352, 3.53353353, 3.54354354, 3.55355355, 3.56356356, 3.57357357, 3.58358358, 3.59359359, 3.6036036 , 3.61361361, 3.62362362, 3.63363363, 3.64364364, 3.65365365, 3.66366366, 3.67367367, 3.68368368, 3.69369369, 3.7037037 , 3.71371371, 3.72372372, 3.73373373, 3.74374374, 3.75375375, 3.76376376, 3.77377377, 3.78378378, 3.79379379, 3.8038038 , 3.81381381, 3.82382382, 3.83383383, 3.84384384, 3.85385385, 3.86386386, 3.87387387, 3.88388388, 3.89389389, 3.9039039 , 3.91391391, 3.92392392, 3.93393393, 3.94394394, 3.95395395, 3.96396396, 3.97397397, 3.98398398, 3.99399399, 4.004004 , 4.01401401, 4.02402402, 4.03403403, 4.04404404, 4.05405405, 4.06406406, 4.07407407, 4.08408408, 4.09409409, 4.1041041 , 4.11411411, 4.12412412, 4.13413413, 4.14414414, 4.15415415, 4.16416416, 4.17417417, 4.18418418, 4.19419419, 4.2042042 , 4.21421421, 4.22422422, 4.23423423, 4.24424424, 4.25425425, 4.26426426, 4.27427427, 4.28428428, 4.29429429, 4.3043043 , 4.31431431, 4.32432432, 4.33433433, 4.34434434, 4.35435435, 4.36436436, 4.37437437, 4.38438438, 4.39439439, 4.4044044 , 4.41441441, 4.42442442, 4.43443443, 4.44444444, 4.45445445, 4.46446446, 4.47447447, 4.48448448, 4.49449449, 4.5045045 , 4.51451451, 4.52452452, 4.53453453, 4.54454454, 4.55455455, 4.56456456, 4.57457457, 4.58458458, 4.59459459, 4.6046046 , 4.61461461, 4.62462462, 4.63463463, 4.64464464, 4.65465465, 4.66466466, 4.67467467, 4.68468468, 4.69469469, 4.7047047 , 4.71471471, 4.72472472, 4.73473473, 4.74474474, 4.75475475, 4.76476476, 4.77477477, 4.78478478, 4.79479479, 4.8048048 , 4.81481481, 4.82482482, 4.83483483, 4.84484484, 4.85485485, 4.86486486, 4.87487487, 4.88488488, 4.89489489, 4.9049049 , 4.91491491, 4.92492492, 4.93493493, 4.94494494, 4.95495495, 4.96496496, 4.97497497, 4.98498498, 4.99499499, 5.00500501, 5.01501502, 5.02502503, 5.03503504, 5.04504505, 5.05505506, 5.06506507, 5.07507508, 5.08508509, 5.0950951 , 5.10510511, 5.11511512, 5.12512513, 5.13513514, 5.14514515, 5.15515516, 5.16516517, 5.17517518, 5.18518519, 5.1951952 , 5.20520521, 5.21521522, 5.22522523, 5.23523524, 5.24524525, 5.25525526, 5.26526527, 5.27527528, 5.28528529, 5.2952953 , 5.30530531, 5.31531532, 5.32532533, 5.33533534, 5.34534535, 5.35535536, 5.36536537, 5.37537538, 5.38538539, 5.3953954 , 5.40540541, 5.41541542, 5.42542543, 5.43543544, 5.44544545, 5.45545546, 5.46546547, 5.47547548, 5.48548549, 5.4954955 , 5.50550551, 5.51551552, 5.52552553, 5.53553554, 5.54554555, 5.55555556, 5.56556557, 5.57557558, 5.58558559, 5.5955956 , 5.60560561, 5.61561562, 5.62562563, 5.63563564, 5.64564565, 5.65565566, 5.66566567, 5.67567568, 5.68568569, 5.6956957 , 5.70570571, 5.71571572, 5.72572573, 5.73573574, 5.74574575, 5.75575576, 5.76576577, 5.77577578, 5.78578579, 5.7957958 , 5.80580581, 5.81581582, 5.82582583, 5.83583584, 5.84584585, 5.85585586, 5.86586587, 5.87587588, 5.88588589, 5.8958959 , 5.90590591, 5.91591592, 5.92592593, 5.93593594, 5.94594595, 5.95595596, 5.96596597, 5.97597598, 5.98598599, 5.995996 , 6.00600601, 6.01601602, 6.02602603, 6.03603604, 6.04604605, 6.05605606, 6.06606607, 6.07607608, 6.08608609, 6.0960961 , 6.10610611, 6.11611612, 6.12612613, 6.13613614, 6.14614615, 6.15615616, 6.16616617, 6.17617618, 6.18618619, 6.1961962 , 6.20620621, 6.21621622, 6.22622623, 6.23623624, 6.24624625, 6.25625626, 6.26626627, 6.27627628, 6.28628629, 6.2962963 , 6.30630631, 6.31631632, 6.32632633, 6.33633634, 6.34634635, 6.35635636, 6.36636637, 6.37637638, 6.38638639, 6.3963964 , 6.40640641, 6.41641642, 6.42642643, 6.43643644, 6.44644645, 6.45645646, 6.46646647, 6.47647648, 6.48648649, 6.4964965 , 6.50650651, 6.51651652, 6.52652653, 6.53653654, 6.54654655, 6.55655656, 6.56656657, 6.57657658, 6.58658659, 6.5965966 , 6.60660661, 6.61661662, 6.62662663, 6.63663664, 6.64664665, 6.65665666, 6.66666667, 6.67667668, 6.68668669, 6.6966967 , 6.70670671, 6.71671672, 6.72672673, 6.73673674, 6.74674675, 6.75675676, 6.76676677, 6.77677678, 6.78678679, 6.7967968 , 6.80680681, 6.81681682, 6.82682683, 6.83683684, 6.84684685, 6.85685686, 6.86686687, 6.87687688, 6.88688689, 6.8968969 , 6.90690691, 6.91691692, 6.92692693, 6.93693694, 6.94694695, 6.95695696, 6.96696697, 6.97697698, 6.98698699, 6.996997 , 7.00700701, 7.01701702, 7.02702703, 7.03703704, 7.04704705, 7.05705706, 7.06706707, 7.07707708, 7.08708709, 7.0970971 , 7.10710711, 7.11711712, 7.12712713, 7.13713714, 7.14714715, 7.15715716, 7.16716717, 7.17717718, 7.18718719, 7.1971972 , 7.20720721, 7.21721722, 7.22722723, 7.23723724, 7.24724725, 7.25725726, 7.26726727, 7.27727728, 7.28728729, 7.2972973 , 7.30730731, 7.31731732, 7.32732733, 7.33733734, 7.34734735, 7.35735736, 7.36736737, 7.37737738, 7.38738739, 7.3973974 , 7.40740741, 7.41741742, 7.42742743, 7.43743744, 7.44744745, 7.45745746, 7.46746747, 7.47747748, 7.48748749, 7.4974975 , 7.50750751, 7.51751752, 7.52752753, 7.53753754, 7.54754755, 7.55755756, 7.56756757, 7.57757758, 7.58758759, 7.5975976 , 7.60760761, 7.61761762, 7.62762763, 7.63763764, 7.64764765, 7.65765766, 7.66766767, 7.67767768, 7.68768769, 7.6976977 , 7.70770771, 7.71771772, 7.72772773, 7.73773774, 7.74774775, 7.75775776, 7.76776777, 7.77777778, 7.78778779, 7.7977978 , 7.80780781, 7.81781782, 7.82782783, 7.83783784, 7.84784785, 7.85785786, 7.86786787, 7.87787788, 7.88788789, 7.8978979 , 7.90790791, 7.91791792, 7.92792793, 7.93793794, 7.94794795, 7.95795796, 7.96796797, 7.97797798, 7.98798799, 7.997998 , 8.00800801, 8.01801802, 8.02802803, 8.03803804, 8.04804805, 8.05805806, 8.06806807, 8.07807808, 8.08808809, 8.0980981 , 8.10810811, 8.11811812, 8.12812813, 8.13813814, 8.14814815, 8.15815816, 8.16816817, 8.17817818, 8.18818819, 8.1981982 , 8.20820821, 8.21821822, 8.22822823, 8.23823824, 8.24824825, 8.25825826, 8.26826827, 8.27827828, 8.28828829, 8.2982983 , 8.30830831, 8.31831832, 8.32832833, 8.33833834, 8.34834835, 8.35835836, 8.36836837, 8.37837838, 8.38838839, 8.3983984 , 8.40840841, 8.41841842, 8.42842843, 8.43843844, 8.44844845, 8.45845846, 8.46846847, 8.47847848, 8.48848849, 8.4984985 , 8.50850851, 8.51851852, 8.52852853, 8.53853854, 8.54854855, 8.55855856, 8.56856857, 8.57857858, 8.58858859, 8.5985986 , 8.60860861, 8.61861862, 8.62862863, 8.63863864, 8.64864865, 8.65865866, 8.66866867, 8.67867868, 8.68868869, 8.6986987 , 8.70870871, 8.71871872, 8.72872873, 8.73873874, 8.74874875, 8.75875876, 8.76876877, 8.77877878, 8.78878879, 8.7987988 , 8.80880881, 8.81881882, 8.82882883, 8.83883884, 8.84884885, 8.85885886, 8.86886887, 8.87887888, 8.88888889, 8.8988989 , 8.90890891, 8.91891892, 8.92892893, 8.93893894, 8.94894895, 8.95895896, 8.96896897, 8.97897898, 8.98898899, 8.998999 , 9.00900901, 9.01901902, 9.02902903, 9.03903904, 9.04904905, 9.05905906, 9.06906907, 9.07907908, 9.08908909, 9.0990991 , 9.10910911, 9.11911912, 9.12912913, 9.13913914, 9.14914915, 9.15915916, 9.16916917, 9.17917918, 9.18918919, 9.1991992 , 9.20920921, 9.21921922, 9.22922923, 9.23923924, 9.24924925, 9.25925926, 9.26926927, 9.27927928, 9.28928929, 9.2992993 , 9.30930931, 9.31931932, 9.32932933, 9.33933934, 9.34934935, 9.35935936, 9.36936937, 9.37937938, 9.38938939, 9.3993994 , 9.40940941, 9.41941942, 9.42942943, 9.43943944, 9.44944945, 9.45945946, 9.46946947, 9.47947948, 9.48948949, 9.4994995 , 9.50950951, 9.51951952, 9.52952953, 9.53953954, 9.54954955, 9.55955956, 9.56956957, 9.57957958, 9.58958959, 9.5995996 , 9.60960961, 9.61961962, 9.62962963, 9.63963964, 9.64964965, 9.65965966, 9.66966967, 9.67967968, 9.68968969, 9.6996997 , 9.70970971, 9.71971972, 9.72972973, 9.73973974, 9.74974975, 9.75975976, 9.76976977, 9.77977978, 9.78978979, 9.7997998 , 9.80980981, 9.81981982, 9.82982983, 9.83983984, 9.84984985, 9.85985986, 9.86986987, 9.87987988, 9.88988989, 9.8998999 , 9.90990991, 9.91991992, 9.92992993, 9.93993994, 9.94994995, 9.95995996, 9.96996997, 9.97997998, 9.98998999, 10. ])
# Create y - note numpy's element-wise operations.
y = 5.0 * x + 2.0
# Look at y.
y
array([ 2. , 2.05005005, 2.1001001 , 2.15015015, 2.2002002 , 2.25025025, 2.3003003 , 2.35035035, 2.4004004 , 2.45045045, 2.5005005 , 2.55055055, 2.6006006 , 2.65065065, 2.7007007 , 2.75075075, 2.8008008 , 2.85085085, 2.9009009 , 2.95095095, 3.001001 , 3.05105105, 3.1011011 , 3.15115115, 3.2012012 , 3.25125125, 3.3013013 , 3.35135135, 3.4014014 , 3.45145145, 3.5015015 , 3.55155155, 3.6016016 , 3.65165165, 3.7017017 , 3.75175175, 3.8018018 , 3.85185185, 3.9019019 , 3.95195195, 4.002002 , 4.05205205, 4.1021021 , 4.15215215, 4.2022022 , 4.25225225, 4.3023023 , 4.35235235, 4.4024024 , 4.45245245, 4.5025025 , 4.55255255, 4.6026026 , 4.65265265, 4.7027027 , 4.75275275, 4.8028028 , 4.85285285, 4.9029029 , 4.95295295, 5.003003 , 5.05305305, 5.1031031 , 5.15315315, 5.2032032 , 5.25325325, 5.3033033 , 5.35335335, 5.4034034 , 5.45345345, 5.5035035 , 5.55355355, 5.6036036 , 5.65365365, 5.7037037 , 5.75375375, 5.8038038 , 5.85385385, 5.9039039 , 5.95395395, 6.004004 , 6.05405405, 6.1041041 , 6.15415415, 6.2042042 , 6.25425425, 6.3043043 , 6.35435435, 6.4044044 , 6.45445445, 6.5045045 , 6.55455455, 6.6046046 , 6.65465465, 6.7047047 , 6.75475475, 6.8048048 , 6.85485485, 6.9049049 , 6.95495495, 7.00500501, 7.05505506, 7.10510511, 7.15515516, 7.20520521, 7.25525526, 7.30530531, 7.35535536, 7.40540541, 7.45545546, 7.50550551, 7.55555556, 7.60560561, 7.65565566, 7.70570571, 7.75575576, 7.80580581, 7.85585586, 7.90590591, 7.95595596, 8.00600601, 8.05605606, 8.10610611, 8.15615616, 8.20620621, 8.25625626, 8.30630631, 8.35635636, 8.40640641, 8.45645646, 8.50650651, 8.55655656, 8.60660661, 8.65665666, 8.70670671, 8.75675676, 8.80680681, 8.85685686, 8.90690691, 8.95695696, 9.00700701, 9.05705706, 9.10710711, 9.15715716, 9.20720721, 9.25725726, 9.30730731, 9.35735736, 9.40740741, 9.45745746, 9.50750751, 9.55755756, 9.60760761, 9.65765766, 9.70770771, 9.75775776, 9.80780781, 9.85785786, 9.90790791, 9.95795796, 10.00800801, 10.05805806, 10.10810811, 10.15815816, 10.20820821, 10.25825826, 10.30830831, 10.35835836, 10.40840841, 10.45845846, 10.50850851, 10.55855856, 10.60860861, 10.65865866, 10.70870871, 10.75875876, 10.80880881, 10.85885886, 10.90890891, 10.95895896, 11.00900901, 11.05905906, 11.10910911, 11.15915916, 11.20920921, 11.25925926, 11.30930931, 11.35935936, 11.40940941, 11.45945946, 11.50950951, 11.55955956, 11.60960961, 11.65965966, 11.70970971, 11.75975976, 11.80980981, 11.85985986, 11.90990991, 11.95995996, 12.01001001, 12.06006006, 12.11011011, 12.16016016, 12.21021021, 12.26026026, 12.31031031, 12.36036036, 12.41041041, 12.46046046, 12.51051051, 12.56056056, 12.61061061, 12.66066066, 12.71071071, 12.76076076, 12.81081081, 12.86086086, 12.91091091, 12.96096096, 13.01101101, 13.06106106, 13.11111111, 13.16116116, 13.21121121, 13.26126126, 13.31131131, 13.36136136, 13.41141141, 13.46146146, 13.51151151, 13.56156156, 13.61161161, 13.66166166, 13.71171171, 13.76176176, 13.81181181, 13.86186186, 13.91191191, 13.96196196, 14.01201201, 14.06206206, 14.11211211, 14.16216216, 14.21221221, 14.26226226, 14.31231231, 14.36236236, 14.41241241, 14.46246246, 14.51251251, 14.56256256, 14.61261261, 14.66266266, 14.71271271, 14.76276276, 14.81281281, 14.86286286, 14.91291291, 14.96296296, 15.01301301, 15.06306306, 15.11311311, 15.16316316, 15.21321321, 15.26326326, 15.31331331, 15.36336336, 15.41341341, 15.46346346, 15.51351351, 15.56356356, 15.61361361, 15.66366366, 15.71371371, 15.76376376, 15.81381381, 15.86386386, 15.91391391, 15.96396396, 16.01401401, 16.06406406, 16.11411411, 16.16416416, 16.21421421, 16.26426426, 16.31431431, 16.36436436, 16.41441441, 16.46446446, 16.51451451, 16.56456456, 16.61461461, 16.66466466, 16.71471471, 16.76476476, 16.81481481, 16.86486486, 16.91491491, 16.96496496, 17.01501502, 17.06506507, 17.11511512, 17.16516517, 17.21521522, 17.26526527, 17.31531532, 17.36536537, 17.41541542, 17.46546547, 17.51551552, 17.56556557, 17.61561562, 17.66566567, 17.71571572, 17.76576577, 17.81581582, 17.86586587, 17.91591592, 17.96596597, 18.01601602, 18.06606607, 18.11611612, 18.16616617, 18.21621622, 18.26626627, 18.31631632, 18.36636637, 18.41641642, 18.46646647, 18.51651652, 18.56656657, 18.61661662, 18.66666667, 18.71671672, 18.76676677, 18.81681682, 18.86686687, 18.91691692, 18.96696697, 19.01701702, 19.06706707, 19.11711712, 19.16716717, 19.21721722, 19.26726727, 19.31731732, 19.36736737, 19.41741742, 19.46746747, 19.51751752, 19.56756757, 19.61761762, 19.66766767, 19.71771772, 19.76776777, 19.81781782, 19.86786787, 19.91791792, 19.96796797, 20.01801802, 20.06806807, 20.11811812, 20.16816817, 20.21821822, 20.26826827, 20.31831832, 20.36836837, 20.41841842, 20.46846847, 20.51851852, 20.56856857, 20.61861862, 20.66866867, 20.71871872, 20.76876877, 20.81881882, 20.86886887, 20.91891892, 20.96896897, 21.01901902, 21.06906907, 21.11911912, 21.16916917, 21.21921922, 21.26926927, 21.31931932, 21.36936937, 21.41941942, 21.46946947, 21.51951952, 21.56956957, 21.61961962, 21.66966967, 21.71971972, 21.76976977, 21.81981982, 21.86986987, 21.91991992, 21.96996997, 22.02002002, 22.07007007, 22.12012012, 22.17017017, 22.22022022, 22.27027027, 22.32032032, 22.37037037, 22.42042042, 22.47047047, 22.52052052, 22.57057057, 22.62062062, 22.67067067, 22.72072072, 22.77077077, 22.82082082, 22.87087087, 22.92092092, 22.97097097, 23.02102102, 23.07107107, 23.12112112, 23.17117117, 23.22122122, 23.27127127, 23.32132132, 23.37137137, 23.42142142, 23.47147147, 23.52152152, 23.57157157, 23.62162162, 23.67167167, 23.72172172, 23.77177177, 23.82182182, 23.87187187, 23.92192192, 23.97197197, 24.02202202, 24.07207207, 24.12212212, 24.17217217, 24.22222222, 24.27227227, 24.32232232, 24.37237237, 24.42242242, 24.47247247, 24.52252252, 24.57257257, 24.62262262, 24.67267267, 24.72272272, 24.77277277, 24.82282282, 24.87287287, 24.92292292, 24.97297297, 25.02302302, 25.07307307, 25.12312312, 25.17317317, 25.22322322, 25.27327327, 25.32332332, 25.37337337, 25.42342342, 25.47347347, 25.52352352, 25.57357357, 25.62362362, 25.67367367, 25.72372372, 25.77377377, 25.82382382, 25.87387387, 25.92392392, 25.97397397, 26.02402402, 26.07407407, 26.12412412, 26.17417417, 26.22422422, 26.27427427, 26.32432432, 26.37437437, 26.42442442, 26.47447447, 26.52452452, 26.57457457, 26.62462462, 26.67467467, 26.72472472, 26.77477477, 26.82482482, 26.87487487, 26.92492492, 26.97497497, 27.02502503, 27.07507508, 27.12512513, 27.17517518, 27.22522523, 27.27527528, 27.32532533, 27.37537538, 27.42542543, 27.47547548, 27.52552553, 27.57557558, 27.62562563, 27.67567568, 27.72572573, 27.77577578, 27.82582583, 27.87587588, 27.92592593, 27.97597598, 28.02602603, 28.07607608, 28.12612613, 28.17617618, 28.22622623, 28.27627628, 28.32632633, 28.37637638, 28.42642643, 28.47647648, 28.52652653, 28.57657658, 28.62662663, 28.67667668, 28.72672673, 28.77677678, 28.82682683, 28.87687688, 28.92692693, 28.97697698, 29.02702703, 29.07707708, 29.12712713, 29.17717718, 29.22722723, 29.27727728, 29.32732733, 29.37737738, 29.42742743, 29.47747748, 29.52752753, 29.57757758, 29.62762763, 29.67767768, 29.72772773, 29.77777778, 29.82782783, 29.87787788, 29.92792793, 29.97797798, 30.02802803, 30.07807808, 30.12812813, 30.17817818, 30.22822823, 30.27827828, 30.32832833, 30.37837838, 30.42842843, 30.47847848, 30.52852853, 30.57857858, 30.62862863, 30.67867868, 30.72872873, 30.77877878, 30.82882883, 30.87887888, 30.92892893, 30.97897898, 31.02902903, 31.07907908, 31.12912913, 31.17917918, 31.22922923, 31.27927928, 31.32932933, 31.37937938, 31.42942943, 31.47947948, 31.52952953, 31.57957958, 31.62962963, 31.67967968, 31.72972973, 31.77977978, 31.82982983, 31.87987988, 31.92992993, 31.97997998, 32.03003003, 32.08008008, 32.13013013, 32.18018018, 32.23023023, 32.28028028, 32.33033033, 32.38038038, 32.43043043, 32.48048048, 32.53053053, 32.58058058, 32.63063063, 32.68068068, 32.73073073, 32.78078078, 32.83083083, 32.88088088, 32.93093093, 32.98098098, 33.03103103, 33.08108108, 33.13113113, 33.18118118, 33.23123123, 33.28128128, 33.33133133, 33.38138138, 33.43143143, 33.48148148, 33.53153153, 33.58158158, 33.63163163, 33.68168168, 33.73173173, 33.78178178, 33.83183183, 33.88188188, 33.93193193, 33.98198198, 34.03203203, 34.08208208, 34.13213213, 34.18218218, 34.23223223, 34.28228228, 34.33233233, 34.38238238, 34.43243243, 34.48248248, 34.53253253, 34.58258258, 34.63263263, 34.68268268, 34.73273273, 34.78278278, 34.83283283, 34.88288288, 34.93293293, 34.98298298, 35.03303303, 35.08308308, 35.13313313, 35.18318318, 35.23323323, 35.28328328, 35.33333333, 35.38338338, 35.43343343, 35.48348348, 35.53353353, 35.58358358, 35.63363363, 35.68368368, 35.73373373, 35.78378378, 35.83383383, 35.88388388, 35.93393393, 35.98398398, 36.03403403, 36.08408408, 36.13413413, 36.18418418, 36.23423423, 36.28428428, 36.33433433, 36.38438438, 36.43443443, 36.48448448, 36.53453453, 36.58458458, 36.63463463, 36.68468468, 36.73473473, 36.78478478, 36.83483483, 36.88488488, 36.93493493, 36.98498498, 37.03503504, 37.08508509, 37.13513514, 37.18518519, 37.23523524, 37.28528529, 37.33533534, 37.38538539, 37.43543544, 37.48548549, 37.53553554, 37.58558559, 37.63563564, 37.68568569, 37.73573574, 37.78578579, 37.83583584, 37.88588589, 37.93593594, 37.98598599, 38.03603604, 38.08608609, 38.13613614, 38.18618619, 38.23623624, 38.28628629, 38.33633634, 38.38638639, 38.43643644, 38.48648649, 38.53653654, 38.58658659, 38.63663664, 38.68668669, 38.73673674, 38.78678679, 38.83683684, 38.88688689, 38.93693694, 38.98698699, 39.03703704, 39.08708709, 39.13713714, 39.18718719, 39.23723724, 39.28728729, 39.33733734, 39.38738739, 39.43743744, 39.48748749, 39.53753754, 39.58758759, 39.63763764, 39.68768769, 39.73773774, 39.78778779, 39.83783784, 39.88788789, 39.93793794, 39.98798799, 40.03803804, 40.08808809, 40.13813814, 40.18818819, 40.23823824, 40.28828829, 40.33833834, 40.38838839, 40.43843844, 40.48848849, 40.53853854, 40.58858859, 40.63863864, 40.68868869, 40.73873874, 40.78878879, 40.83883884, 40.88888889, 40.93893894, 40.98898899, 41.03903904, 41.08908909, 41.13913914, 41.18918919, 41.23923924, 41.28928929, 41.33933934, 41.38938939, 41.43943944, 41.48948949, 41.53953954, 41.58958959, 41.63963964, 41.68968969, 41.73973974, 41.78978979, 41.83983984, 41.88988989, 41.93993994, 41.98998999, 42.04004004, 42.09009009, 42.14014014, 42.19019019, 42.24024024, 42.29029029, 42.34034034, 42.39039039, 42.44044044, 42.49049049, 42.54054054, 42.59059059, 42.64064064, 42.69069069, 42.74074074, 42.79079079, 42.84084084, 42.89089089, 42.94094094, 42.99099099, 43.04104104, 43.09109109, 43.14114114, 43.19119119, 43.24124124, 43.29129129, 43.34134134, 43.39139139, 43.44144144, 43.49149149, 43.54154154, 43.59159159, 43.64164164, 43.69169169, 43.74174174, 43.79179179, 43.84184184, 43.89189189, 43.94194194, 43.99199199, 44.04204204, 44.09209209, 44.14214214, 44.19219219, 44.24224224, 44.29229229, 44.34234234, 44.39239239, 44.44244244, 44.49249249, 44.54254254, 44.59259259, 44.64264264, 44.69269269, 44.74274274, 44.79279279, 44.84284284, 44.89289289, 44.94294294, 44.99299299, 45.04304304, 45.09309309, 45.14314314, 45.19319319, 45.24324324, 45.29329329, 45.34334334, 45.39339339, 45.44344344, 45.49349349, 45.54354354, 45.59359359, 45.64364364, 45.69369369, 45.74374374, 45.79379379, 45.84384384, 45.89389389, 45.94394394, 45.99399399, 46.04404404, 46.09409409, 46.14414414, 46.19419419, 46.24424424, 46.29429429, 46.34434434, 46.39439439, 46.44444444, 46.49449449, 46.54454454, 46.59459459, 46.64464464, 46.69469469, 46.74474474, 46.79479479, 46.84484484, 46.89489489, 46.94494494, 46.99499499, 47.04504505, 47.0950951 , 47.14514515, 47.1951952 , 47.24524525, 47.2952953 , 47.34534535, 47.3953954 , 47.44544545, 47.4954955 , 47.54554555, 47.5955956 , 47.64564565, 47.6956957 , 47.74574575, 47.7957958 , 47.84584585, 47.8958959 , 47.94594595, 47.995996 , 48.04604605, 48.0960961 , 48.14614615, 48.1961962 , 48.24624625, 48.2962963 , 48.34634635, 48.3963964 , 48.44644645, 48.4964965 , 48.54654655, 48.5965966 , 48.64664665, 48.6966967 , 48.74674675, 48.7967968 , 48.84684685, 48.8968969 , 48.94694695, 48.996997 , 49.04704705, 49.0970971 , 49.14714715, 49.1971972 , 49.24724725, 49.2972973 , 49.34734735, 49.3973974 , 49.44744745, 49.4974975 , 49.54754755, 49.5975976 , 49.64764765, 49.6976977 , 49.74774775, 49.7977978 , 49.84784785, 49.8978979 , 49.94794795, 49.997998 , 50.04804805, 50.0980981 , 50.14814815, 50.1981982 , 50.24824825, 50.2982983 , 50.34834835, 50.3983984 , 50.44844845, 50.4984985 , 50.54854855, 50.5985986 , 50.64864865, 50.6986987 , 50.74874875, 50.7987988 , 50.84884885, 50.8988989 , 50.94894895, 50.998999 , 51.04904905, 51.0990991 , 51.14914915, 51.1991992 , 51.24924925, 51.2992993 , 51.34934935, 51.3993994 , 51.44944945, 51.4994995 , 51.54954955, 51.5995996 , 51.64964965, 51.6996997 , 51.74974975, 51.7997998 , 51.84984985, 51.8998999 , 51.94994995, 52. ])
# Plot x versus y.
plt.plot(x, y, 'k.')
[<matplotlib.lines.Line2D at 0x2e3c554b7c0>]
# Do regression on the x and y arrays using numpy.
np.polyfit(x, y, 1)
array([5., 2.])
# Create a y with noise.
y = 3.0 * x - 1.0 + np.random.normal(0.0, 1.0, len(x))
# Look at y.
y
array([-1.80243008e+00, 4.65032561e-01, -1.04536179e+00, -3.83957536e-01, -1.43800669e+00, -2.82581286e+00, -1.23403356e+00, -3.27647837e-01, -2.41505154e+00, -1.02597216e+00, -4.80400105e-01, -1.72770264e+00, 3.48693899e-01, 2.42385683e-01, -3.58794203e-01, -3.38358508e-01, -2.25615807e+00, 4.67828105e-01, -1.82599992e+00, 1.02836593e+00, -4.47957911e-01, -1.35349411e+00, 1.22072835e-01, -8.92757468e-02, -1.79594834e+00, -7.39470118e-01, 1.10338734e+00, 3.36417972e-01, -1.27642001e-02, 1.90609082e+00, 1.83254074e+00, 4.53296747e-02, -1.47347249e+00, 4.60243029e-01, -2.58764039e-01, 7.05028377e-01, -9.14812046e-01, -2.21140535e-01, -9.81144942e-01, -2.96664277e+00, -1.01576913e-01, -1.03678696e+00, 1.32714281e+00, 7.82415060e-01, -9.02187331e-01, 1.30082104e+00, -1.14899186e+00, 3.75463123e-01, 1.36017935e+00, -1.36392803e-01, 7.19732590e-01, 1.60584938e+00, -7.58713024e-01, -3.01503954e-01, 1.13250309e+00, 3.01760455e+00, 7.49500785e-01, -7.39606767e-01, 2.00557180e+00, -1.13017270e+00, -2.67683649e-01, 1.39773603e+00, 1.78955152e+00, 2.34652926e+00, 2.29140992e+00, -1.13295264e+00, 1.87430773e+00, 1.68834260e+00, 1.97624013e+00, -3.61542654e-01, 6.86463806e-01, 4.25337266e-01, 1.89983621e+00, -6.93769032e-02, 1.55815327e-01, 9.93203804e-01, -1.20365294e+00, 1.59400293e+00, 3.76497069e+00, 1.64853286e+00, 9.14096719e-01, 5.34896931e-01, 4.43489636e-01, 2.51605192e+00, 1.19469218e+00, -6.04222370e-01, 1.80694356e+00, 2.77749521e+00, 1.01994273e+00, 1.49339969e+00, 1.87959561e+00, 1.57118037e+00, 3.18312646e+00, 3.71023994e+00, 2.16705780e+00, 1.19451525e+00, 1.37327206e+00, 2.27582870e+00, 1.56064245e+00, 1.77623398e+00, 1.36480895e+00, 7.00443648e-01, 2.65047790e+00, 2.54266832e+00, 1.91737795e+00, 3.20864926e+00, 2.15866237e+00, 1.56211127e+00, 1.70971958e+00, 1.93012848e+00, 3.33818080e+00, 3.24007446e+00, 3.88638179e-01, 3.35280736e+00, 2.23007290e+00, 1.83429393e+00, 3.03977773e+00, 2.65236364e+00, 3.44602071e+00, 1.72558347e+00, 1.64650990e+00, 1.14044122e+00, 1.54728616e+00, 2.69844929e+00, 2.41374708e+00, 1.85479918e+00, 1.31877413e+00, 2.23563803e+00, 5.27764790e+00, 3.53044973e+00, 3.98222376e+00, 3.64947373e+00, 3.99296969e+00, 2.61117208e+00, 2.96863046e+00, 3.73037648e+00, 2.57437946e+00, 2.56759565e+00, 1.70768269e+00, 4.13690306e+00, 3.96085444e+00, 1.33327499e+00, 3.13714035e+00, 3.31308457e+00, 3.19152397e+00, 2.39906016e+00, 4.78396726e+00, 2.16324954e+00, 4.96999912e+00, 3.83261215e+00, 3.03697534e+00, 3.21929815e+00, 2.30074017e+00, 5.31322599e+00, 2.07260784e+00, 2.42674938e+00, 2.24729853e+00, 4.33675202e+00, 4.85454548e+00, 1.65807519e+00, 3.46290130e+00, 2.55107736e+00, 4.30265606e+00, 3.45918109e+00, 3.78439896e+00, 5.52572852e+00, 4.10684130e+00, 3.64752652e+00, 3.60276603e+00, 4.95391078e+00, 5.95196148e+00, 4.12378098e+00, 4.22388740e+00, 3.60210071e+00, 4.37706973e+00, 5.88168551e+00, 3.94845348e+00, 4.04623264e+00, 2.34538476e+00, 4.75486890e+00, 3.15214156e+00, 3.00490069e+00, 6.40701928e+00, 5.58342891e+00, 3.18452654e+00, 4.16902506e+00, 6.44630391e+00, 3.41990482e+00, 4.51896111e+00, 3.32003103e+00, 3.86954675e+00, 5.91128730e+00, 4.04613498e+00, 5.04886482e+00, 3.24858649e+00, 6.42780622e+00, 4.35474641e+00, 5.04062335e+00, 4.97280277e+00, 4.28699978e+00, 4.96892942e+00, 3.14138397e+00, 5.16090525e+00, 4.36967072e+00, 5.21072844e+00, 4.87039242e+00, 4.38952418e+00, 4.61827852e+00, 5.22194915e+00, 5.21256142e+00, 3.85630322e+00, 6.12979847e+00, 4.73567510e+00, 5.98624676e+00, 5.32860593e+00, 4.54464573e+00, 6.30802768e+00, 6.26312082e+00, 4.85736337e+00, 5.22800640e+00, 5.60237531e+00, 4.37354698e+00, 7.53769563e+00, 6.15905334e+00, 5.55739083e+00, 6.62259514e+00, 5.01402551e+00, 7.20230459e+00, 6.57928319e+00, 7.17843568e+00, 3.56336356e+00, 6.60664450e+00, 6.80053055e+00, 4.58347505e+00, 5.11274674e+00, 5.29144966e+00, 5.85335138e+00, 5.99981582e+00, 4.49511473e+00, 3.71622097e+00, 4.78742159e+00, 4.62819363e+00, 6.22420980e+00, 6.92293723e+00, 8.37812345e+00, 6.93592769e+00, 7.54604398e+00, 5.73951972e+00, 5.72792390e+00, 6.89783859e+00, 6.95494766e+00, 6.45042776e+00, 6.01297713e+00, 5.75356042e+00, 6.63427648e+00, 4.82273528e+00, 6.84098044e+00, 7.39981862e+00, 5.85896725e+00, 5.47530354e+00, 6.69476845e+00, 6.59561120e+00, 5.74986112e+00, 7.89116578e+00, 7.32448208e+00, 7.55596946e+00, 8.52055501e+00, 6.66448710e+00, 4.71349517e+00, 7.69827203e+00, 7.46962064e+00, 7.45441989e+00, 6.93773225e+00, 9.08289691e+00, 7.25697170e+00, 8.74508196e+00, 6.02902665e+00, 7.54456725e+00, 5.97945489e+00, 6.61830749e+00, 6.52968565e+00, 8.21057789e+00, 8.13802738e+00, 8.50095192e+00, 6.47794031e+00, 8.82671783e+00, 8.38417288e+00, 8.72275142e+00, 6.42039063e+00, 8.06690685e+00, 8.11004985e+00, 8.51733846e+00, 7.80645527e+00, 8.44231340e+00, 7.47725202e+00, 9.44451462e+00, 5.84386066e+00, 1.00305656e+01, 7.57471512e+00, 8.32097011e+00, 8.19815481e+00, 6.73354247e+00, 7.94027135e+00, 6.58199867e+00, 9.73117608e+00, 7.12835023e+00, 1.05975330e+01, 9.03260129e+00, 8.96375006e+00, 8.44468233e+00, 8.34421872e+00, 9.87638293e+00, 1.04678791e+01, 6.10354247e+00, 1.01382122e+01, 8.11968960e+00, 7.59015309e+00, 8.59608022e+00, 8.62925266e+00, 7.46816823e+00, 8.03498751e+00, 9.42532564e+00, 8.84603968e+00, 8.98472440e+00, 8.63664950e+00, 8.98319323e+00, 8.63828647e+00, 8.86660115e+00, 1.02344272e+01, 8.47323001e+00, 7.89499360e+00, 8.50725711e+00, 7.90415231e+00, 9.38236837e+00, 8.49982419e+00, 7.89747989e+00, 8.75647068e+00, 9.01383884e+00, 9.56511797e+00, 1.10000710e+01, 1.08788298e+01, 9.70393346e+00, 9.79298726e+00, 9.48063958e+00, 1.08813733e+01, 1.00155414e+01, 8.97536492e+00, 1.02375418e+01, 1.05399138e+01, 1.08284700e+01, 8.42687484e+00, 9.44808193e+00, 1.03682466e+01, 8.54738228e+00, 8.11635829e+00, 1.06109537e+01, 8.72676848e+00, 8.98974931e+00, 9.11414431e+00, 8.84266058e+00, 8.86830882e+00, 1.12172142e+01, 1.03921937e+01, 9.38831874e+00, 1.06212063e+01, 1.05232016e+01, 1.09187295e+01, 1.07875508e+01, 1.06700227e+01, 1.10381675e+01, 1.06516092e+01, 1.05875611e+01, 1.07379902e+01, 8.85321047e+00, 1.07266832e+01, 1.07933135e+01, 1.03501593e+01, 1.08727392e+01, 9.68207885e+00, 8.59057576e+00, 1.14900148e+01, 8.83173408e+00, 9.08362567e+00, 1.15083806e+01, 7.74826144e+00, 1.02662043e+01, 1.07834853e+01, 9.52652595e+00, 1.16198780e+01, 1.05154744e+01, 1.20800541e+01, 1.10016256e+01, 1.08393359e+01, 1.22784933e+01, 9.08589012e+00, 9.43147188e+00, 1.22677147e+01, 1.11702946e+01, 9.48352897e+00, 1.01786284e+01, 9.74812413e+00, 1.02788931e+01, 1.14686296e+01, 1.07623623e+01, 1.13308318e+01, 1.10486539e+01, 1.04500758e+01, 1.17576826e+01, 1.20880140e+01, 1.22386562e+01, 1.04615636e+01, 1.10280603e+01, 1.16126509e+01, 1.25832364e+01, 1.18310703e+01, 1.11217680e+01, 1.23675943e+01, 1.26126726e+01, 1.10179879e+01, 1.21503696e+01, 1.18332651e+01, 1.32661430e+01, 1.26965939e+01, 1.29549531e+01, 1.18815506e+01, 1.28988260e+01, 1.27269174e+01, 1.35796258e+01, 1.27211677e+01, 1.20434170e+01, 1.31920604e+01, 1.11672982e+01, 1.05894303e+01, 1.09110564e+01, 1.10962756e+01, 1.29357353e+01, 9.91414433e+00, 1.34573909e+01, 1.22492844e+01, 1.11265927e+01, 1.29402916e+01, 1.24562761e+01, 1.22542262e+01, 1.20779665e+01, 1.30746178e+01, 1.10402962e+01, 1.18883629e+01, 1.55118155e+01, 1.28462782e+01, 1.18210206e+01, 1.20281044e+01, 1.34938437e+01, 1.39263320e+01, 1.33090546e+01, 1.43669533e+01, 1.21317335e+01, 1.29336633e+01, 1.34865245e+01, 1.19872921e+01, 1.36919947e+01, 1.29652160e+01, 1.19275862e+01, 1.33536758e+01, 1.32592684e+01, 1.44025521e+01, 1.38687910e+01, 1.33824990e+01, 1.26942758e+01, 1.38897691e+01, 1.19775907e+01, 1.22160629e+01, 1.37819547e+01, 1.36080625e+01, 1.37391906e+01, 1.33847211e+01, 1.33740121e+01, 1.30335673e+01, 1.35366299e+01, 1.24473666e+01, 1.28018574e+01, 1.40089313e+01, 1.12488553e+01, 1.41970060e+01, 1.40839149e+01, 1.41608650e+01, 1.42299360e+01, 1.47458729e+01, 1.47489182e+01, 1.53997334e+01, 1.36533698e+01, 1.35240227e+01, 1.43789791e+01, 1.40445770e+01, 1.38143901e+01, 1.24809002e+01, 1.38922049e+01, 1.33697296e+01, 1.35993830e+01, 1.57634767e+01, 1.32980588e+01, 1.31475183e+01, 1.35305022e+01, 1.35331495e+01, 1.50052025e+01, 1.58975516e+01, 1.39198706e+01, 1.25638698e+01, 1.54199494e+01, 1.56306069e+01, 1.36429972e+01, 1.41451058e+01, 1.32473571e+01, 1.47319470e+01, 1.42769311e+01, 1.51882839e+01, 1.51607743e+01, 1.60208085e+01, 1.48802850e+01, 1.35601246e+01, 1.33478365e+01, 1.43233927e+01, 1.51099253e+01, 1.40964913e+01, 1.67265497e+01, 1.62349818e+01, 1.41929462e+01, 1.55890874e+01, 1.54072247e+01, 1.56291766e+01, 1.63457438e+01, 1.56237259e+01, 1.46866499e+01, 1.48424246e+01, 1.53269432e+01, 1.33756555e+01, 1.40497740e+01, 1.42610581e+01, 1.48314059e+01, 1.55000747e+01, 1.56495374e+01, 1.59456917e+01, 1.37938313e+01, 1.54285998e+01, 1.47350823e+01, 1.60960698e+01, 1.50390085e+01, 1.52204756e+01, 1.47770444e+01, 1.58321179e+01, 1.34764523e+01, 1.52026419e+01, 1.54379455e+01, 1.49236515e+01, 1.45103679e+01, 1.68006375e+01, 1.56960630e+01, 1.69908553e+01, 1.48715841e+01, 1.60070285e+01, 1.46170388e+01, 1.71693163e+01, 1.66545802e+01, 1.56341621e+01, 1.42301419e+01, 1.52228338e+01, 1.64247435e+01, 1.65853627e+01, 1.67262256e+01, 1.53030077e+01, 1.56406153e+01, 1.65490161e+01, 1.57170517e+01, 1.66335158e+01, 1.71909577e+01, 1.60304948e+01, 1.74510525e+01, 1.57808138e+01, 1.50837174e+01, 1.71256734e+01, 1.61611048e+01, 1.72272310e+01, 1.69227472e+01, 1.73434291e+01, 1.65461454e+01, 1.57020414e+01, 1.67997540e+01, 1.56382057e+01, 1.71084185e+01, 1.59915684e+01, 1.51348877e+01, 1.78427764e+01, 1.75300570e+01, 1.60379848e+01, 1.67177334e+01, 1.61145714e+01, 1.67122591e+01, 1.62335354e+01, 1.75646004e+01, 1.80746529e+01, 1.61914345e+01, 1.68738151e+01, 1.67608840e+01, 1.73896737e+01, 1.63034511e+01, 1.60870623e+01, 1.70078635e+01, 1.73601524e+01, 1.60127420e+01, 1.66250163e+01, 1.83318318e+01, 1.58798259e+01, 1.86300311e+01, 1.67924283e+01, 1.56637691e+01, 1.80310508e+01, 1.71566387e+01, 1.77439200e+01, 1.77871111e+01, 1.80482227e+01, 1.63963016e+01, 1.65033911e+01, 1.76323419e+01, 1.89791697e+01, 1.67117692e+01, 1.78015751e+01, 1.65998478e+01, 1.82003354e+01, 1.85374789e+01, 1.81408351e+01, 1.73463662e+01, 1.87064268e+01, 1.76022436e+01, 1.92851821e+01, 1.82038260e+01, 1.87328372e+01, 1.81338685e+01, 1.76895174e+01, 1.84899580e+01, 1.66511747e+01, 1.93621199e+01, 1.93065845e+01, 1.84692950e+01, 1.86068868e+01, 1.94225451e+01, 1.83704366e+01, 1.86033868e+01, 1.79817683e+01, 1.72156394e+01, 1.75491643e+01, 2.01244162e+01, 1.92857107e+01, 2.01774750e+01, 1.76532802e+01, 1.92599718e+01, 1.96819404e+01, 1.75070885e+01, 1.80863668e+01, 1.92776097e+01, 1.93499445e+01, 1.87912318e+01, 1.80749088e+01, 1.72010219e+01, 1.84890715e+01, 1.77194776e+01, 1.93514921e+01, 1.88887616e+01, 1.91805009e+01, 1.87611262e+01, 1.86377439e+01, 1.92040028e+01, 1.99100502e+01, 1.76807849e+01, 1.89283719e+01, 1.67016816e+01, 1.74830279e+01, 1.94177134e+01, 1.86575841e+01, 2.02495741e+01, 1.79216227e+01, 1.90520131e+01, 1.81546117e+01, 2.10579070e+01, 2.05420070e+01, 1.83719671e+01, 2.06918142e+01, 2.01025307e+01, 2.10668994e+01, 1.93080544e+01, 1.96393218e+01, 1.83108177e+01, 2.07693458e+01, 2.00589192e+01, 2.10561380e+01, 1.97987871e+01, 2.00557456e+01, 2.13756780e+01, 1.89154557e+01, 1.81495231e+01, 1.88877126e+01, 2.01366134e+01, 1.95208235e+01, 1.89391202e+01, 1.89252064e+01, 1.97047086e+01, 1.87682257e+01, 2.00120725e+01, 1.86901778e+01, 2.01722008e+01, 2.04098791e+01, 1.93585743e+01, 1.94188047e+01, 2.11221392e+01, 1.93202669e+01, 1.99621491e+01, 2.27984431e+01, 2.07915997e+01, 2.00462402e+01, 2.09591765e+01, 2.03983094e+01, 2.12808967e+01, 2.10438687e+01, 1.93489544e+01, 1.97942229e+01, 1.85218582e+01, 2.02030890e+01, 1.98826233e+01, 2.23817139e+01, 1.99592436e+01, 2.07348475e+01, 2.03949945e+01, 1.98652546e+01, 2.24943996e+01, 2.22201603e+01, 2.28512279e+01, 2.14347162e+01, 2.07961389e+01, 2.13544448e+01, 2.15834393e+01, 2.00750246e+01, 2.08265831e+01, 2.05819096e+01, 2.01972815e+01, 2.15614647e+01, 2.05216204e+01, 2.16664949e+01, 1.96627556e+01, 2.31525982e+01, 2.15884304e+01, 2.15250244e+01, 2.30055337e+01, 2.15756052e+01, 2.16870147e+01, 2.18836299e+01, 2.19477475e+01, 2.05339899e+01, 2.16014331e+01, 2.13973541e+01, 2.16121005e+01, 2.20690399e+01, 2.15995279e+01, 2.20922439e+01, 2.20077246e+01, 2.21351699e+01, 2.46862248e+01, 2.16495743e+01, 2.32430838e+01, 2.23133482e+01, 2.17559867e+01, 2.24886324e+01, 2.38230308e+01, 2.06205651e+01, 2.22421104e+01, 2.30402558e+01, 2.04560098e+01, 2.18554321e+01, 2.23103053e+01, 2.28177501e+01, 2.29714682e+01, 2.22008400e+01, 2.34825162e+01, 2.38931013e+01, 2.16222651e+01, 2.31468996e+01, 2.26257088e+01, 2.21161962e+01, 2.29831037e+01, 2.18389638e+01, 2.28742845e+01, 2.21161350e+01, 2.13425222e+01, 2.35731591e+01, 2.23993105e+01, 2.36981639e+01, 2.14867880e+01, 2.14803973e+01, 2.36959336e+01, 2.33786458e+01, 2.43605263e+01, 2.23884741e+01, 2.39982548e+01, 2.22199097e+01, 2.39381527e+01, 2.33553040e+01, 2.30388853e+01, 2.28670107e+01, 2.21441444e+01, 2.41267499e+01, 2.21834437e+01, 2.23256366e+01, 2.33020439e+01, 2.28440264e+01, 2.51094430e+01, 2.32810534e+01, 2.24181470e+01, 2.40738392e+01, 2.40594650e+01, 2.39837838e+01, 2.23731785e+01, 2.34010587e+01, 2.35123033e+01, 2.30098445e+01, 2.33667657e+01, 2.18941913e+01, 2.30867747e+01, 2.16645324e+01, 2.42807918e+01, 2.46708767e+01, 2.35315211e+01, 2.22971190e+01, 2.43459906e+01, 2.57958005e+01, 2.47667618e+01, 2.30962099e+01, 2.29855018e+01, 2.49404189e+01, 2.45266826e+01, 2.37798325e+01, 2.63028046e+01, 2.44459076e+01, 2.55617788e+01, 2.41447394e+01, 2.45703665e+01, 2.52960523e+01, 2.46768008e+01, 2.46558201e+01, 2.49228866e+01, 2.36937041e+01, 2.38203016e+01, 2.35766686e+01, 2.35280408e+01, 2.46833882e+01, 2.77541296e+01, 2.45368935e+01, 2.34844679e+01, 2.38286718e+01, 2.26193506e+01, 2.41090298e+01, 2.45204344e+01, 2.41127460e+01, 2.46623595e+01, 2.52390090e+01, 2.31471077e+01, 2.46049590e+01, 2.51318111e+01, 2.50761259e+01, 2.62006793e+01, 2.36585492e+01, 2.42340070e+01, 2.51436429e+01, 2.70935736e+01, 2.62756425e+01, 2.53292225e+01, 2.52062745e+01, 2.50336159e+01, 2.60811286e+01, 2.43283044e+01, 2.45831373e+01, 2.70707799e+01, 2.53943499e+01, 2.36974910e+01, 2.50484425e+01, 2.63730961e+01, 2.65113730e+01, 2.65221571e+01, 2.63001576e+01, 2.57667863e+01, 2.50677124e+01, 2.43734422e+01, 2.62921566e+01, 2.55820496e+01, 2.54167227e+01, 2.69906321e+01, 2.47252065e+01, 2.57190884e+01, 2.60329711e+01, 2.64962626e+01, 2.71602797e+01, 2.59820398e+01, 2.49904336e+01, 2.68352978e+01, 2.50838466e+01, 2.88791898e+01, 2.66689858e+01, 2.45103792e+01, 2.57458988e+01, 2.53816508e+01, 2.75649851e+01, 2.50026900e+01, 2.70079416e+01, 2.67990265e+01, 2.65537254e+01, 2.54800428e+01, 2.73342058e+01, 2.73877793e+01, 2.64226901e+01, 2.75151127e+01, 2.62079018e+01, 2.59621501e+01, 2.57092507e+01, 2.71658509e+01, 2.56917288e+01, 2.69001009e+01, 2.57171384e+01, 2.69128258e+01, 2.70741280e+01, 2.80610391e+01, 2.82007383e+01, 2.86829492e+01, 2.80477133e+01, 2.62019005e+01, 2.87092106e+01, 2.74672041e+01, 2.77074549e+01, 2.59133954e+01, 2.43833555e+01, 2.81805726e+01, 2.74873447e+01, 2.73480497e+01, 2.80841594e+01, 2.81040461e+01, 2.72037134e+01, 2.61035538e+01, 2.66422010e+01, 2.86358287e+01, 2.74804775e+01, 2.83703257e+01, 2.83412890e+01, 2.74187435e+01, 2.73773179e+01, 2.75309567e+01, 2.52637996e+01, 2.89777383e+01, 2.59658190e+01, 2.81935754e+01, 2.60604713e+01, 2.76220619e+01, 2.77282785e+01, 2.79772852e+01, 2.65438120e+01, 2.72271413e+01, 2.95704191e+01, 2.77082771e+01, 2.84518103e+01, 2.94003386e+01, 2.85312593e+01, 2.67152562e+01, 2.80859087e+01, 2.83600815e+01, 2.68938137e+01, 2.85000650e+01, 2.97938266e+01, 2.91044130e+01, 2.75354688e+01, 2.94146330e+01, 2.68523101e+01, 2.78378031e+01, 2.88784958e+01, 2.85913794e+01, 2.74319937e+01, 2.79880033e+01, 2.82449638e+01, 2.71040195e+01, 2.90126540e+01, 2.86476981e+01, 2.90665809e+01, 3.01011112e+01, 2.86533378e+01, 2.92088685e+01, 2.52766240e+01, 2.88675554e+01, 2.95182727e+01, 2.92938596e+01, 2.82405262e+01, 3.00064739e+01, 2.68181322e+01, 2.90728093e+01, 2.99934403e+01, 2.88235978e+01, 2.95566745e+01, 2.87431494e+01])
# Do regression on the x and y arrays using numpy.
np.polyfit(x, y, 1)
array([ 3.01209078, -1.06067635])
# Create variables with those values.
m, c = np.polyfit(x, y, 1)
# Have a look at m and c.
m, c
(3.0120907776499664, -1.060676350019941)
# Plot x and y and the regression line in red.
plt.plot(x, y, 'k.')
plt.plot(x, m * x + c, 'r-')
[<matplotlib.lines.Line2D at 0x2e3c55dee50>]
Note that we can easily calculate the best m and c ourselves.
# Calculate mean x and mean y.
x_avg = np.mean(x)
y_avg = np.mean(y)
# Subtract means from x and y.
x_zero = x - x_avg
y_zero = y - y_avg
# Dot product of mean-adjusted x and y divided by dot product of mean adjusted x with itself.
m = np.sum(x_zero * y_zero) / np.sum(x_zero * x_zero)
# Subtract m times average x from average y.
c = y_avg - m * x_avg
# Let's have a look - same values as above.
m, c
(3.0120907776499637, -1.0606763500199374)
# Create y from a polynomial in x.
y = 2.0 * x * x + 5.0 * x + 1.0 + np.random.normal(0.0, 1.0, len(x))
# Look at y.
y
array([1.85539905e+00, 1.46158550e+00, 1.05484267e+00, 1.65755501e+00, 1.04129132e+00, 1.01738921e-01, 2.09238991e+00, 2.20103767e+00, 5.42429101e-01, 3.90055080e+00, 1.27835309e+00, 9.38275968e-01, 2.33649514e+00, 2.52332352e+00, 3.49606562e+00, 2.05259511e+00, 2.07280213e+00, 2.96161957e+00, 6.84454247e-01, 2.22682499e+00, 1.79353984e+00, 2.77178656e+00, 1.40422367e+00, 1.67456205e+00, 1.88905361e+00, 8.66820546e-02, 1.23215152e+00, 1.58169272e-01, 3.20156341e+00, 1.25681971e+00, 1.86241183e+00, 2.52078411e+00, 1.82799904e+00, 3.01592052e+00, 3.48643922e+00, 3.45337491e+00, 6.03264985e+00, 3.18339995e+00, 2.82105467e+00, 2.00695620e+00, 2.44009842e+00, 2.33557272e+00, 2.73990875e+00, 3.08485726e+00, 3.23347874e+00, 3.78366946e+00, 3.12338587e+00, 4.31737409e+00, 3.45581310e+00, 3.21866371e+00, 5.22591493e+00, 4.29986671e+00, 4.29728694e+00, 3.33132656e+00, 4.69477228e+00, 3.98204251e+00, 5.49100341e+00, 3.47259482e+00, 5.43433871e+00, 3.39423771e+00, 4.62094105e+00, 4.84210030e+00, 4.20825371e+00, 3.49995349e+00, 5.09922052e+00, 4.58325015e+00, 7.15675755e+00, 4.37272711e+00, 5.19772304e+00, 4.56731182e+00, 6.56350136e+00, 5.91586361e+00, 4.05676534e+00, 7.09775164e+00, 6.18587747e+00, 6.10756380e+00, 5.70019714e+00, 5.31972068e+00, 4.63961438e+00, 6.28914636e+00, 6.37214902e+00, 5.69017033e+00, 7.36550947e+00, 6.29915360e+00, 6.96672076e+00, 6.38817515e+00, 5.57400550e+00, 7.84852630e+00, 5.95730434e+00, 6.34791071e+00, 7.46373180e+00, 6.30244638e+00, 9.05601225e+00, 7.79158403e+00, 8.44079172e+00, 8.40384737e+00, 8.53320120e+00, 6.16814899e+00, 8.95757548e+00, 8.33739482e+00, 7.51656682e+00, 8.91789575e+00, 7.85939944e+00, 8.66107968e+00, 9.54968676e+00, 8.84341302e+00, 7.56028694e+00, 7.10071091e+00, 9.21561800e+00, 8.40473478e+00, 8.15551321e+00, 8.66178663e+00, 9.52992786e+00, 1.02248472e+01, 9.74995813e+00, 9.70335140e+00, 8.79796469e+00, 1.10575932e+01, 9.37905040e+00, 9.00631454e+00, 1.09733092e+01, 1.04936731e+01, 8.95650467e+00, 1.05409358e+01, 1.02306773e+01, 9.53187094e+00, 1.10365840e+01, 9.97121588e+00, 1.18497272e+01, 1.01811097e+01, 1.02586869e+01, 9.41270216e+00, 9.72971151e+00, 1.20314450e+01, 1.02836623e+01, 1.17741712e+01, 1.10226092e+01, 1.15324403e+01, 1.34575142e+01, 1.26547286e+01, 1.26949982e+01, 1.16819869e+01, 1.30434082e+01, 1.20128345e+01, 1.55093679e+01, 1.37934441e+01, 1.22801141e+01, 1.26003838e+01, 1.33576444e+01, 1.19225365e+01, 1.42834470e+01, 1.33029571e+01, 1.37608079e+01, 1.35721183e+01, 1.54994901e+01, 1.33944847e+01, 1.23760514e+01, 1.56268907e+01, 1.37597761e+01, 1.38500304e+01, 1.58749363e+01, 1.32296096e+01, 1.45291961e+01, 1.36498837e+01, 1.48808322e+01, 1.29669676e+01, 1.45072202e+01, 1.45223465e+01, 1.70585639e+01, 1.51960444e+01, 1.33705581e+01, 1.53288936e+01, 1.39246797e+01, 1.53703992e+01, 1.67297502e+01, 1.62918580e+01, 1.64677830e+01, 1.54090780e+01, 1.68496400e+01, 1.66759609e+01, 1.52267578e+01, 1.60280136e+01, 1.67892541e+01, 1.49119185e+01, 1.85979466e+01, 1.71205838e+01, 1.77588379e+01, 1.72192254e+01, 1.80898195e+01, 1.98775300e+01, 1.58204871e+01, 1.59852793e+01, 1.71073636e+01, 1.84716702e+01, 1.85508766e+01, 1.87145346e+01, 1.77083050e+01, 1.88088644e+01, 1.78682003e+01, 2.06391221e+01, 1.93689846e+01, 1.74680505e+01, 1.98048334e+01, 1.73043976e+01, 1.88864390e+01, 1.91784726e+01, 1.93313519e+01, 2.01063737e+01, 1.97093512e+01, 2.12816733e+01, 2.07192393e+01, 2.23766855e+01, 2.05723528e+01, 1.97254510e+01, 2.28723349e+01, 2.39759161e+01, 2.11722055e+01, 2.05735293e+01, 2.17330039e+01, 2.10262869e+01, 2.12278486e+01, 2.26279109e+01, 2.19250803e+01, 1.96021608e+01, 2.28131805e+01, 2.32364246e+01, 2.31858399e+01, 2.26748850e+01, 2.12811547e+01, 2.32585673e+01, 2.25477288e+01, 2.30897011e+01, 2.42784738e+01, 2.29499842e+01, 2.54220539e+01, 2.42601851e+01, 2.44727435e+01, 2.49121929e+01, 2.42054806e+01, 2.40660209e+01, 2.59669956e+01, 2.40282924e+01, 2.42799567e+01, 2.42746256e+01, 2.44957656e+01, 2.63158703e+01, 2.55341752e+01, 2.53027754e+01, 2.42985943e+01, 2.45603283e+01, 2.60234347e+01, 2.60326051e+01, 2.62839246e+01, 2.70880792e+01, 2.66358671e+01, 2.60455432e+01, 2.65808510e+01, 2.86944292e+01, 2.57562022e+01, 2.74420862e+01, 2.68190654e+01, 2.58743203e+01, 2.79203318e+01, 2.77424469e+01, 2.95374770e+01, 2.92372592e+01, 2.90494493e+01, 2.74398664e+01, 2.77656620e+01, 2.87783416e+01, 2.98336450e+01, 2.90106666e+01, 3.04472396e+01, 2.88084162e+01, 3.24404442e+01, 3.12721835e+01, 3.08835397e+01, 3.01842204e+01, 3.13100047e+01, 3.01203603e+01, 2.99456550e+01, 3.27969255e+01, 3.02441621e+01, 3.02703931e+01, 3.13102073e+01, 3.00857319e+01, 3.17263074e+01, 3.28940990e+01, 3.30269091e+01, 3.13832014e+01, 3.25171289e+01, 3.28667863e+01, 3.14654108e+01, 3.35831763e+01, 3.17452579e+01, 3.39901099e+01, 3.35923142e+01, 3.34797333e+01, 3.32123600e+01, 3.57681806e+01, 3.44545158e+01, 3.47945213e+01, 3.37933812e+01, 3.34747511e+01, 3.57496811e+01, 3.49319117e+01, 3.42095617e+01, 3.43127240e+01, 3.39150633e+01, 3.57539291e+01, 3.70769689e+01, 3.48999514e+01, 3.59333051e+01, 3.64480643e+01, 3.87790076e+01, 3.66286216e+01, 3.62268309e+01, 3.89976777e+01, 3.55876103e+01, 3.58049390e+01, 3.71117612e+01, 3.82473495e+01, 3.85363985e+01, 3.86677812e+01, 3.89560927e+01, 3.99176009e+01, 3.86996676e+01, 3.85008816e+01, 3.92801259e+01, 3.75375885e+01, 3.88522303e+01, 3.88755620e+01, 4.01176222e+01, 3.87599960e+01, 3.95652589e+01, 4.09492808e+01, 4.09454406e+01, 3.99646232e+01, 4.08312076e+01, 4.18216278e+01, 4.09772398e+01, 4.11990957e+01, 4.13389133e+01, 4.15169953e+01, 4.22970206e+01, 4.13422176e+01, 4.15638301e+01, 4.25079181e+01, 4.23738566e+01, 4.32864105e+01, 4.47833042e+01, 4.28076588e+01, 4.44082026e+01, 4.33259271e+01, 4.36624443e+01, 4.42014663e+01, 4.62658536e+01, 4.57210969e+01, 4.30760418e+01, 4.44769478e+01, 4.43900190e+01, 4.53289407e+01, 4.48646809e+01, 4.48851650e+01, 4.65284464e+01, 4.60190304e+01, 4.74042911e+01, 4.51832432e+01, 4.90715748e+01, 4.72221470e+01, 4.73061521e+01, 4.82480008e+01, 4.82964672e+01, 4.64511986e+01, 4.83940765e+01, 4.73496896e+01, 4.92706880e+01, 4.76535311e+01, 4.89517474e+01, 4.99413100e+01, 4.71220820e+01, 4.73221796e+01, 4.90219143e+01, 4.80710550e+01, 5.08795979e+01, 5.02413177e+01, 5.06349662e+01, 5.00554576e+01, 5.23810856e+01, 4.98482423e+01, 4.86219674e+01, 5.08253806e+01, 5.22431560e+01, 5.15591142e+01, 5.26222309e+01, 5.04336527e+01, 5.25976941e+01, 5.24162538e+01, 5.22270855e+01, 5.47638550e+01, 5.31609533e+01, 5.22596299e+01, 5.42990341e+01, 5.42163744e+01, 5.46490966e+01, 5.57414605e+01, 5.42683341e+01, 5.30408585e+01, 5.41100999e+01, 5.54030906e+01, 5.42696588e+01, 5.47415661e+01, 5.66534959e+01, 5.47727186e+01, 5.68464502e+01, 5.55726611e+01, 5.49328379e+01, 5.68194738e+01, 5.72941330e+01, 5.71041759e+01, 5.55939951e+01, 5.80710763e+01, 5.90313997e+01, 5.76769163e+01, 5.88552388e+01, 5.90852307e+01, 6.00284057e+01, 5.62642735e+01, 5.82246198e+01, 5.98642281e+01, 6.04169863e+01, 5.91861357e+01, 5.96384850e+01, 6.04652177e+01, 6.12498288e+01, 6.14990294e+01, 6.03118133e+01, 6.21179095e+01, 6.13312881e+01, 6.11816188e+01, 6.31970961e+01, 6.21570739e+01, 6.12889762e+01, 6.33912429e+01, 6.30251659e+01, 6.33741830e+01, 6.17410215e+01, 6.33375166e+01, 6.50076632e+01, 6.40284032e+01, 6.45329478e+01, 6.50800923e+01, 6.31273380e+01, 6.47502003e+01, 6.47622181e+01, 6.36778266e+01, 6.62670598e+01, 6.61827478e+01, 6.61755194e+01, 6.84644090e+01, 6.64604589e+01, 6.83358686e+01, 6.71352306e+01, 6.76994148e+01, 6.74752379e+01, 6.71807067e+01, 6.73609090e+01, 6.90352558e+01, 6.80671522e+01, 6.86465565e+01, 7.00504053e+01, 6.94794119e+01, 6.98473974e+01, 7.00005773e+01, 7.06655190e+01, 7.16737335e+01, 7.02987958e+01, 7.07650507e+01, 7.00360743e+01, 7.15545354e+01, 7.19671963e+01, 7.15304334e+01, 7.14612843e+01, 7.10515459e+01, 7.35791913e+01, 7.18273843e+01, 7.15526698e+01, 7.13062501e+01, 7.18316453e+01, 7.42449324e+01, 7.31899004e+01, 7.37460209e+01, 7.35137177e+01, 7.48135002e+01, 7.46147958e+01, 7.38998518e+01, 7.66410159e+01, 7.46107847e+01, 7.64628892e+01, 7.68474867e+01, 7.55144268e+01, 7.58649498e+01, 7.62137568e+01, 7.78390776e+01, 7.93785589e+01, 7.72646627e+01, 7.60135023e+01, 7.76762084e+01, 7.99076181e+01, 7.80174713e+01, 7.99002998e+01, 7.81132894e+01, 7.71026712e+01, 8.02686292e+01, 7.91580876e+01, 8.11452450e+01, 7.87698499e+01, 7.96230292e+01, 8.14007199e+01, 8.11653383e+01, 8.06240395e+01, 8.09256412e+01, 8.08499838e+01, 8.21905900e+01, 8.35334114e+01, 8.19197505e+01, 8.19947394e+01, 8.17644814e+01, 8.44126967e+01, 8.24203841e+01, 8.41478136e+01, 8.53965844e+01, 8.47645574e+01, 8.47197845e+01, 8.33080448e+01, 8.57086670e+01, 8.61460838e+01, 8.63683540e+01, 8.52713100e+01, 8.55055051e+01, 8.92594776e+01, 8.71769797e+01, 8.64803560e+01, 8.69488774e+01, 8.91568097e+01, 8.83122159e+01, 8.80633416e+01, 8.87403269e+01, 8.98671208e+01, 8.92444085e+01, 8.78612351e+01, 9.00755413e+01, 8.86358676e+01, 9.20146624e+01, 8.89520638e+01, 9.06580685e+01, 9.03101207e+01, 8.99400826e+01, 9.15518879e+01, 9.06638449e+01, 9.16661384e+01, 9.19087750e+01, 9.05785294e+01, 9.20184530e+01, 9.35464079e+01, 9.19401234e+01, 9.48485076e+01, 9.45710469e+01, 9.36705587e+01, 9.43631025e+01, 9.47188782e+01, 9.33320595e+01, 9.56081706e+01, 9.59978521e+01, 9.50016283e+01, 9.56887977e+01, 9.65046810e+01, 9.58171244e+01, 9.81276203e+01, 9.70543779e+01, 9.72324691e+01, 9.60928548e+01, 9.67542322e+01, 9.92526975e+01, 1.00584044e+02, 9.85389159e+01, 9.94563659e+01, 9.85868968e+01, 1.00850546e+02, 1.01795639e+02, 1.02108041e+02, 1.00402138e+02, 1.00942058e+02, 1.01406086e+02, 1.01206592e+02, 1.01980832e+02, 1.01397943e+02, 1.02688518e+02, 1.02984485e+02, 1.02725385e+02, 1.03369550e+02, 1.02567991e+02, 1.04851946e+02, 1.03115442e+02, 1.05755103e+02, 1.03380832e+02, 1.03515227e+02, 1.05059851e+02, 1.04962433e+02, 1.06203285e+02, 1.07333838e+02, 1.07498410e+02, 1.07571987e+02, 1.07336406e+02, 1.07421154e+02, 1.07709475e+02, 1.07112365e+02, 1.08677997e+02, 1.09414995e+02, 1.08260898e+02, 1.08376012e+02, 1.10207475e+02, 1.11013274e+02, 1.10826794e+02, 1.10775846e+02, 1.11276165e+02, 1.10454124e+02, 1.10157079e+02, 1.12574257e+02, 1.13164558e+02, 1.11749425e+02, 1.13030505e+02, 1.14939020e+02, 1.13364966e+02, 1.12021569e+02, 1.14576184e+02, 1.13713003e+02, 1.15147626e+02, 1.15707948e+02, 1.14598281e+02, 1.14822197e+02, 1.15296341e+02, 1.17181851e+02, 1.17036709e+02, 1.14960510e+02, 1.17241812e+02, 1.16780286e+02, 1.18691487e+02, 1.17821097e+02, 1.16880305e+02, 1.16721715e+02, 1.19082975e+02, 1.18136477e+02, 1.20059551e+02, 1.18463227e+02, 1.17598772e+02, 1.19808032e+02, 1.19678919e+02, 1.20720321e+02, 1.20796941e+02, 1.22148783e+02, 1.23104984e+02, 1.22598763e+02, 1.23079837e+02, 1.24884667e+02, 1.23091375e+02, 1.23342734e+02, 1.22792253e+02, 1.22240845e+02, 1.22873844e+02, 1.23985771e+02, 1.26000579e+02, 1.24495740e+02, 1.23214861e+02, 1.25897165e+02, 1.26241877e+02, 1.26362705e+02, 1.28011429e+02, 1.26288950e+02, 1.26348203e+02, 1.28252648e+02, 1.29475198e+02, 1.28867074e+02, 1.28853196e+02, 1.30398136e+02, 1.28716314e+02, 1.30210405e+02, 1.29565842e+02, 1.33058351e+02, 1.32091545e+02, 1.29797317e+02, 1.30687502e+02, 1.29758924e+02, 1.32349742e+02, 1.30670242e+02, 1.33137260e+02, 1.32436359e+02, 1.33075167e+02, 1.32680590e+02, 1.33393982e+02, 1.34813114e+02, 1.33373549e+02, 1.36144512e+02, 1.34847752e+02, 1.34431251e+02, 1.36739197e+02, 1.37757684e+02, 1.36722673e+02, 1.36715058e+02, 1.37258341e+02, 1.37594849e+02, 1.38462174e+02, 1.38547407e+02, 1.37726171e+02, 1.39782762e+02, 1.38810532e+02, 1.38717546e+02, 1.39620224e+02, 1.40862357e+02, 1.41778308e+02, 1.42284263e+02, 1.41287314e+02, 1.43272505e+02, 1.41848743e+02, 1.42486513e+02, 1.42289805e+02, 1.42350107e+02, 1.42418109e+02, 1.43619573e+02, 1.43534785e+02, 1.45104279e+02, 1.43946482e+02, 1.45496882e+02, 1.45637383e+02, 1.44898884e+02, 1.46188591e+02, 1.46547872e+02, 1.48034955e+02, 1.46475535e+02, 1.47816706e+02, 1.48031886e+02, 1.47897389e+02, 1.48071834e+02, 1.48367309e+02, 1.48982227e+02, 1.50459312e+02, 1.47212848e+02, 1.50679065e+02, 1.50172733e+02, 1.51424655e+02, 1.50389381e+02, 1.51595386e+02, 1.53384466e+02, 1.53112524e+02, 1.53791085e+02, 1.51886542e+02, 1.52181078e+02, 1.54808000e+02, 1.54927852e+02, 1.54045090e+02, 1.53538799e+02, 1.56428977e+02, 1.53716579e+02, 1.56689740e+02, 1.57231911e+02, 1.55482466e+02, 1.55659953e+02, 1.58201978e+02, 1.59257882e+02, 1.56818773e+02, 1.57879873e+02, 1.58685143e+02, 1.58491938e+02, 1.61089222e+02, 1.60594063e+02, 1.61337732e+02, 1.60467891e+02, 1.61693532e+02, 1.60448510e+02, 1.61835028e+02, 1.61339108e+02, 1.63229607e+02, 1.61909217e+02, 1.62752209e+02, 1.61911453e+02, 1.62426092e+02, 1.63355609e+02, 1.65186480e+02, 1.64449204e+02, 1.63625502e+02, 1.65311125e+02, 1.64594894e+02, 1.66943760e+02, 1.66013570e+02, 1.67763504e+02, 1.68857782e+02, 1.69866793e+02, 1.67479962e+02, 1.69840813e+02, 1.69412671e+02, 1.69020572e+02, 1.69022475e+02, 1.70122569e+02, 1.69969922e+02, 1.71397769e+02, 1.71023000e+02, 1.71810380e+02, 1.73006704e+02, 1.73347255e+02, 1.70942914e+02, 1.73590620e+02, 1.71617254e+02, 1.72489796e+02, 1.74192651e+02, 1.75201216e+02, 1.75218476e+02, 1.73221730e+02, 1.74913593e+02, 1.76218320e+02, 1.76833755e+02, 1.77083879e+02, 1.77059982e+02, 1.76161428e+02, 1.77099634e+02, 1.77649893e+02, 1.79444737e+02, 1.78763001e+02, 1.77452039e+02, 1.79473051e+02, 1.82470487e+02, 1.79305613e+02, 1.83359245e+02, 1.81530265e+02, 1.81773256e+02, 1.82858617e+02, 1.83319209e+02, 1.83025767e+02, 1.82629233e+02, 1.82315799e+02, 1.83503374e+02, 1.85115947e+02, 1.83822270e+02, 1.85113281e+02, 1.84095945e+02, 1.88005563e+02, 1.86975755e+02, 1.88203778e+02, 1.86518822e+02, 1.86097725e+02, 1.89087038e+02, 1.88957862e+02, 1.87459595e+02, 1.88277397e+02, 1.89868822e+02, 1.89783046e+02, 1.91146403e+02, 1.89811853e+02, 1.91228985e+02, 1.90448347e+02, 1.90779265e+02, 1.92369601e+02, 1.93686118e+02, 1.94351982e+02, 1.92367597e+02, 1.94744304e+02, 1.94144679e+02, 1.95858345e+02, 1.95413868e+02, 1.95746458e+02, 1.95992687e+02, 1.97031651e+02, 1.97122874e+02, 1.97548262e+02, 1.97678146e+02, 1.96564688e+02, 1.97443823e+02, 1.99092683e+02, 1.97699489e+02, 1.98850818e+02, 2.00461601e+02, 1.99937265e+02, 2.01970856e+02, 2.00639107e+02, 2.00335685e+02, 2.02321840e+02, 2.01245657e+02, 2.01733545e+02, 2.02302475e+02, 2.04143680e+02, 2.03952261e+02, 2.04921817e+02, 2.05134553e+02, 2.04173118e+02, 2.07468611e+02, 2.06046967e+02, 2.05912458e+02, 2.07528152e+02, 2.07822567e+02, 2.07066029e+02, 2.07770612e+02, 2.08469895e+02, 2.08096347e+02, 2.08639746e+02, 2.11267524e+02, 2.10198604e+02, 2.11065522e+02, 2.10245819e+02, 2.11205364e+02, 2.12453154e+02, 2.14030532e+02, 2.11646077e+02, 2.12937216e+02, 2.13536339e+02, 2.15211403e+02, 2.14306150e+02, 2.13818683e+02, 2.16424944e+02, 2.14800041e+02, 2.14312398e+02, 2.17257320e+02, 2.18245295e+02, 2.17702264e+02, 2.16734051e+02, 2.17441865e+02, 2.17710221e+02, 2.17859675e+02, 2.18315644e+02, 2.18295100e+02, 2.20153984e+02, 2.18177066e+02, 2.20638290e+02, 2.19784674e+02, 2.21395755e+02, 2.23753307e+02, 2.23757540e+02, 2.22667230e+02, 2.23862653e+02, 2.25047886e+02, 2.25297279e+02, 2.24873935e+02, 2.25135043e+02, 2.25645984e+02, 2.25316025e+02, 2.26162398e+02, 2.25234149e+02, 2.27816793e+02, 2.26665924e+02, 2.27995687e+02, 2.29230485e+02, 2.28828624e+02, 2.28403380e+02, 2.27984310e+02, 2.29184738e+02, 2.30420313e+02, 2.31319802e+02, 2.33378207e+02, 2.31196720e+02, 2.33330755e+02, 2.32127340e+02, 2.31224849e+02, 2.33865356e+02, 2.34316006e+02, 2.35452319e+02, 2.35769632e+02, 2.34586214e+02, 2.35455218e+02, 2.36413434e+02, 2.35373801e+02, 2.36892980e+02, 2.36534554e+02, 2.38066559e+02, 2.38822467e+02, 2.37301905e+02, 2.41073102e+02, 2.40327071e+02, 2.41322783e+02, 2.41747708e+02, 2.43349740e+02, 2.40758279e+02, 2.43476964e+02, 2.43159914e+02, 2.41430736e+02, 2.43326463e+02, 2.44157708e+02, 2.44717708e+02, 2.43657635e+02, 2.45607360e+02, 2.46422637e+02, 2.44780232e+02, 2.47620975e+02, 2.46532157e+02, 2.47694429e+02, 2.47431699e+02, 2.48740756e+02, 2.47173038e+02, 2.50462420e+02, 2.50957170e+02, 2.52003901e+02, 2.52772123e+02, 2.49865665e+02])
# Blindly try the regression - we get answers.
# Create variables with those values.
m, c = np.polyfit(x, y, 1)
# Have a look at m and c.
m, c
(25.00301522766029, -32.29058148957602)
# Plot the line and the points.
plt.plot(x, y, 'k.')
plt.plot(x, m * x + c, 'r-')
[<matplotlib.lines.Line2D at 0x2e3c584c850>]
# Create variables with those values.
a, b, c = np.polyfit(x, y, 2)
# Plot the line and the points.
plt.plot(x, y, 'k.')
plt.plot(x, a * x * x + b * x + c, 'r-')
[<matplotlib.lines.Line2D at 0x2e3c586d880>]
Note how the points below the line are bunched in a specific $x$ range.
Let's try multiple linear regression using sklearn. https://scikit-learn.org/stable/
# Import linear_model from sklearn.
import sklearn.linear_model as lm
# Create a linear regression model instance.
m = lm.LinearRegression()
# Let's use pandas to read a csv file and organise our data.
import pandas as pd
# Read the iris csv from online.
df = pd.read_csv('https://datahub.io/machine-learning/iris/r/iris.csv')
df
sepallength | sepalwidth | petallength | petalwidth | class | |
---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | Iris-setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | Iris-setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | Iris-setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | Iris-setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | Iris-setosa |
... | ... | ... | ... | ... | ... |
145 | 6.7 | 3.0 | 5.2 | 2.3 | Iris-virginica |
146 | 6.3 | 2.5 | 5.0 | 1.9 | Iris-virginica |
147 | 6.5 | 3.0 | 5.2 | 2.0 | Iris-virginica |
148 | 6.2 | 3.4 | 5.4 | 2.3 | Iris-virginica |
149 | 5.9 | 3.0 | 5.1 | 1.8 | Iris-virginica |
150 rows × 5 columns
# Let's pretend we want to do linear regression on these variables to predict petal width.
x = df[['sepallength', 'sepalwidth', 'petallength']]
# Here's petal width.
y = df['petalwidth']
# Ask our model to fit the data.
m.fit(x, y)
LinearRegression()
# Here's our intercept.
m.intercept_
-0.248723586024453
# Here's our coefficients, in order.
m.coef_
array([-0.21027133, 0.22877721, 0.52608818])
# See how good our fit is.
m.score(x, y)
0.9380481344518986
# Calculating the score by hand.
t, u, v = m.coef_
c = m.intercept_
y_avg = y.mean()
u = ((y - (t * x['sepallength'] + u * x['sepalwidth'] + v * x['petallength'] + c))**2).sum()
v = ((y - y.mean())**2).sum()
1 - (u/v)
0.9380481344518986
# Using statsmodels.
import statsmodels.api as sm
# Tell statmodels to include an intercept.
xwithc = sm.add_constant(x)
# Create a model.
msm = sm.OLS(y, xwithc)
# Fit the data.
rsm = msm.fit()
# Print a summary.
print(rsm.summary())
OLS Regression Results ============================================================================== Dep. Variable: petalwidth R-squared: 0.938 Model: OLS Adj. R-squared: 0.937 Method: Least Squares F-statistic: 736.9 Date: Sun, 17 Oct 2021 Prob (F-statistic): 6.20e-88 Time: 16:44:34 Log-Likelihood: 36.809 No. Observations: 150 AIC: -65.62 Df Residuals: 146 BIC: -53.57 Df Model: 3 Covariance Type: nonrobust =============================================================================== coef std err t P>|t| [0.025 0.975] ------------------------------------------------------------------------------- const -0.2487 0.178 -1.396 0.165 -0.601 0.103 sepallength -0.2103 0.048 -4.426 0.000 -0.304 -0.116 sepalwidth 0.2288 0.049 4.669 0.000 0.132 0.326 petallength 0.5261 0.024 21.536 0.000 0.478 0.574 ============================================================================== Omnibus: 5.603 Durbin-Watson: 1.577 Prob(Omnibus): 0.061 Jarque-Bera (JB): 6.817 Skew: 0.222 Prob(JB): 0.0331 Kurtosis: 3.945 Cond. No. 90.0 ============================================================================== Notes: [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.