# Import NumPy and matplotlib.pyplot
import numpy as np
import matplotlib.pyplot as plt
# Read in the data for age, bmi and insurance charges in separate arrays.
# Print out to check
#
import numpy as np
import matplotlib.pyplot as plt
filename='insurance.csv'
age=np.loadtxt(filename,usecols=0,delimiter=',',skiprows=1)
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
print(age)
print(bmi)
print(charges)
[19. 18. 28. ... 18. 21. 61.]
[27.9 33.77 33. ... 36.85 25.8 29.07]
[16884.924 1725.5523 4449.462 ... 1629.8335 2007.945 29141.3603]
1338
# print out the number of data instances
import numpy as np
import matplotlib.pyplot as plt
filename='insurance.csv'
age=np.loadtxt(filename,usecols=0,delimiter=',',skiprows=1)
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
print(f"The number of data instances for age in the file is {len(age)}.")
print(f"The number of data instances for bmi in the file is {len(bmi)}.")
print(f"The number of data instances for insurance charges in the file is {len(charges)}.")
The number of data instances for age in the file is 1338.
The number of data instances for bmi in the file is 1338.
The number of data instances for insurance charges in the file is 1338.
# plot charges vs age and add labels to axis and title
import numpy as np
import matplotlib.pyplot as plt
filename='insurance.csv'
age=np.loadtxt(filename,usecols=0,delimiter=',',skiprows=1)
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
plt.plot(age,charges,"r")
plt.xlabel("Age")
plt.ylabel("Charges")
plt.title("Charges vs. Age")
# plot charges vs BMI; add axis labels and plot title
import numpy as np
import matplotlib.pyplot as plt
filename='insurance.csv'
age=np.loadtxt(filename,usecols=0,delimiter=',',skiprows=1)
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
plt.plot(bmi,charges,"r")
plt.xlabel("BMI")
plt.ylabel("Charges")
plt.title("Charges vs. BMI")
# Import NumPy and matplotlib.pyplot
import numpy as np
import matplotlib.pyplot as plt
# Read in the data for bmi and insurance charges in separate arrays.
# Print out to check
#
filename='insurance.csv'
import numpy as np
import matplotlib.pyplot as plt
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
print(bmi)
print(charges)
[27.9 33.77 33. ... 36.85 25.8 29.07]
[16884.924 1725.5523 4449.462 ... 1629.8335 2007.945 29141.3603]
# Fit a line using linear regression
filename='insurance.csv'
import numpy as np
import matplotlib.pyplot as plt
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
coeff1=np.polyfit(bmi,charges,1)
f=np.poly1d(coeff1)
print(f)
393.9 x + 1193
# Plot data and line on same graph
filename='insurance.csv'
import numpy as np
import matplotlib.pyplot as plt
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
coeff1=np.polyfit(bmi,charges,1)
f=np.poly1d(coeff1)
plt.plot(bmi,charges)
bmi_min=np.min(bmi)
bmi_max=np.max(bmi)
xx=np.linspace(bmi_min,bmi_max,4)
yy=f(xx)
plt.plot(xx,yy)
plt.xlabel("BMI")
plt.ylabel("Charges")
plt.title("Charges vs. BMI")
plt.show()
# Fit a parabola to data
filename='insurance.csv'
import numpy as np
import matplotlib.pyplot as plt
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
coeff1=np.polyfit(bmi,charges,2)
f=np.poly1d(coeff1)
print(f)
2
-6.662 x + 814 x - 5177
# Plot data and parabola on same graph
filename='insurance.csv'
import numpy as np
import matplotlib.pyplot as plt
bmi=np.loadtxt(filename,usecols=2,delimiter=',',skiprows=1)
charges=np.loadtxt(filename,usecols=6,delimiter=',',skiprows=1)
coeff1=np.polyfit(bmi,charges,2)
f=np.poly1d(coeff1)
plt.plot(bmi,charges)
bmi_min=np.min(bmi)
bmi_max=np.max(bmi)
xx=np.linspace(bmi_min,bmi_max,4)
yy=f(xx)
plt.plot(xx,yy)
plt.xlabel("BMI")
plt.ylabel("Charges")
plt.title("Charges vs. BMI")
plt.show()