diff --git a/Python/numpi.py b/Python/numpi.py
new file mode 100644
index 0000000000000000000000000000000000000000..aff65e6229c1e851cd23c9196a4e64ad720ea989
--- /dev/null
+++ b/Python/numpi.py
@@ -0,0 +1,21 @@
+#
+# numpi.py
+# Neil Gershenfeld 1/23/17
+# calculation of pi by a numpy sum
+# pi = 3.14159265358979323846 
+#
+
+from numpy import *
+import time
+
+NPTS = 10000000
+a = 0.5
+b = 0.75
+c = 0.25
+start_time = time.time()
+i = arange(1,(NPTS+1),dtype=float64)
+pi = sum(0.5/((i-0.75)*(i-.25)))
+end_time = time.time()
+mflops = NPTS*5.0/(1.0e6*(end_time-start_time))
+print "NPTS = %d, pi = %f"%(NPTS,pi)
+print "time = %f, estimated MFlops = %f"%(end_time-start_time,mflops)
diff --git a/Python/pi.py b/Python/pi.py
new file mode 100755
index 0000000000000000000000000000000000000000..649fc5605a14b40cee15846f7d982cf6e1c086bc
--- /dev/null
+++ b/Python/pi.py
@@ -0,0 +1,22 @@
+#
+# pi.py
+# Neil Gershenfeld 1/23/17
+# calculation of pi by a scalar sum
+# pi = 3.14159265358979323846 
+#
+
+import time
+
+NPTS = 10000000
+a = 0.5
+b = 0.75
+c = 0.25
+pi = 0
+start_time = time.time()
+for i in range(1,(NPTS+1)):
+   pi += a/((i-b)*(i-c))
+end_time = time.time()
+mflops = NPTS*5.0/(1.0e6*(end_time-start_time))
+print "NPTS = %d, pi = %f"%(NPTS,pi)
+print "time = %f, estimated MFlops = %f"%(end_time-start_time,mflops)
+