《利用python进行数据分析》ch04
来源:互联网 发布:淘宝显示原价和折扣价 编辑:程序博客网 时间:2024/06/11 23:42
data1 = [6, 7.5, 8, 0, 1 ]
import numpy as nparr1 = np.array(data1)
arr1
array([ 6. , 7.5, 8. , 0. , 1. ])
arr1.dtype
dtype('float64')
arr2 = np.array([[1,2,3,4],[5,6,7,8]])
arr2
array([[1, 2, 3, 4], [5, 6, 7, 8]])
arr2.dtype
dtype('int32')
arr2.ndim
2
arr2.shape
(2, 4)
np.zeros(10)
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros((3,6))
array([[ 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0.]])
np.empty((2,3,4))
array([[[ 5.20332695e-316, 7.75683064e-322, 0.00000000e+000, 0.00000000e+000], [ 8.45593933e-307, 5.02034658e+175, 2.53230277e-052, 3.70532239e-057], [ 3.59317820e-052, 4.66380380e-033, 1.47763641e+248, 1.16096346e-028]], [[ 7.69165785e+218, 1.35617292e+248, 7.78836466e+010, 3.80201643e-052], [ 6.14288016e-062, 6.00456200e-067, 4.26582608e-096, 6.32299154e+233], [ 6.48224638e+170, 5.22411352e+257, 5.74020278e+180, 8.37174974e-144]]])
np.arange(15)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
float_arr2 = arr2.astype(np.float64)
float_arr2
array([[ 1., 2., 3., 4.], [ 5., 6., 7., 8.]])
num_strings = np.array(['1.24','3.5','5.89'])
num = num_strings.astype(np.float64)
num
array([ 1.24, 3.5 , 5.89])
arr = np.array([[1,2,3],[4,5,6]])
arr
array([[1, 2, 3], [4, 5, 6]])
arr + 3
array([[4, 5, 6], [7, 8, 9]])
arr * arr
array([[ 1, 4, 9], [16, 25, 36]])
1/arr
array([[ 1. , 0.5 , 0.33333333], [ 0.25 , 0.2 , 0.16666667]])
arr = np.arange(10)
arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[5]
5
arr[5:8]
array([5, 6, 7])
arr[5:7] =12
arr
array([ 0, 1, 2, 3, 4, 12, 12, 7, 8, 9])
arr_slice = arr
arr_slice
array([ 0, 1, 2, 3, 4, 12, 12, 7, 8, 9])
arr_slice[1:5] = 3
arr_slice
array([ 0, 3, 3, 3, 3, 12, 12, 7, 8, 9])
arr
array([ 0, 3, 3, 3, 3, 12, 12, 7, 8, 9])
arr_slice[:] = 4
arr_slice
array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4])
arr
array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4])
arr_2 = arr[5:8]
arr_2
array([4, 4, 4])
arr
array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4])
arr_2 = 5
arr
array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4])
arr_2
5
arr
array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4])
arr_2 =arr[5:8]
arr_2
array([4, 4, 4])
arr_2[:] = 3
arr_2
array([3, 3, 3])
arr
array([4, 4, 4, 4, 4, 3, 3, 3, 4, 4])
arr_3 = arr[5:8]arr_3
array([3, 3, 3])
arr_3 = arr[5:8].copy()arr_3
array([3, 3, 3])
arr_3[:] = 5arr_3
array([5, 5, 5])
arr
array([4, 4, 4, 4, 4, 3, 3, 3, 4, 4])
arr3d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])arr3d
array([[[ 1, 2, 3], [ 4, 5, 6]], [[ 7, 8, 9], [10, 11, 12]]])
arr3d[0]
array([[1, 2, 3], [4, 5, 6]])
arr3d[0,1]
array([4, 5, 6])
arr3d[0,1,2]
6
arr3d[0] =42arr3d
array([[[42, 42, 42], [42, 42, 42]], [[ 7, 8, 9], [10, 11, 12]]])
arr2d
---------------------------------------------------------------------------NameError Traceback (most recent call last)<ipython-input-75-e4875421ed12> in <module>()----> 1 arr2dNameError: name 'arr2d' is not defined
arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])arr2d
array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2d[:2]
arr2d[:2,1:] arr2d[2:, :]
array([[7, 8, 9]])
arr2d[:,0:1]
array([[1], [4], [7]])
布尔型索引
names = np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe'])names
array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'], dtype='<U4')
data = np.random.randn(7 ,4)data
array([[-0.05519961, -0.6695114 , 0.73873212, 1.35429108], [ 0.26574674, -0.67678125, 0.68455009, 1.20532802], [ 1.91907976, 0.17437032, -0.34026484, -1.09242711], [ 0.13644762, 0.06578062, 0.97828842, -2.27956845], [-1.22419022, -0.20714661, 0.49776557, -0.18843655], [-2.91283946, -0.42014576, -1.48466495, -1.36583399], [-1.59793333, 0.38929168, 0.91178511, 0.28523578]])
names == 'Bob'
array([ True, False, False, True, False, False, False], dtype=bool)
data[names == 'Bob']
array([[-0.05519961, -0.6695114 , 0.73873212, 1.35429108], [ 0.13644762, 0.06578062, 0.97828842, -2.27956845]])
data[names == 'Bob', 2:]
array([[ 0.73873212, 1.35429108], [ 0.97828842, -2.27956845]])
data[names == 'Bob', 3]
array([ 1.35429108, -2.27956845])
花式索引
arr = np.empty((8,4))for i in range(8): arr[i] = iarr
array([[ 0., 0., 0., 0.], [ 1., 1., 1., 1.], [ 2., 2., 2., 2.], [ 3., 3., 3., 3.], [ 4., 4., 4., 4.], [ 5., 5., 5., 5.], [ 6., 6., 6., 6.], [ 7., 7., 7., 7.]])
arr[[4,3,0,6]]
array([[ 4., 4., 4., 4.], [ 3., 3., 3., 3.], [ 0., 0., 0., 0.], [ 6., 6., 6., 6.]])
arr[[-3,-5,-7]]
array([[ 5., 5., 5., 5.], [ 3., 3., 3., 3.], [ 1., 1., 1., 1.]])
arr[[3,-5,-7]]
array([[ 3., 3., 3., 3.], [ 3., 3., 3., 3.], [ 1., 1., 1., 1.]])
arr = np.arange(32).reshape(8,4)arr
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23], [24, 25, 26, 27], [28, 29, 30, 31]])
对array索引,一次传入多个索引值,会得到一个一维数组,比如:
arr[[1,5,7,2],[0,2,3,1]]
array([ 4, 22, 31, 9])
arr[[1,5,7,2]][:,[0,2,3,1]]
array([[ 4, 6, 7, 5], [20, 22, 23, 21], [28, 30, 31, 29], [ 8, 10, 11, 9]])
arr[np.ix_([1,5,7,2],[0,3,1,2])]
array([[ 4, 7, 5, 6], [20, 23, 21, 22], [28, 31, 29, 30], [ 8, 11, 9, 10]])
arr = np.arange(15).reshape((3,5))arr
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
arr.T
array([[ 0, 5, 10], [ 1, 6, 11], [ 2, 7, 12], [ 3, 8, 13], [ 4, 9, 14]])
arr = np.random.randn(6,3)arr
array([[ 0.82346196, -1.06194771, -0.75574777], [-0.36525177, 0.20397179, 0.2792704 ], [ 1.5388186 , 0.5514322 , -0.55777723], [ 0.32915877, -0.56420315, -0.58347459], [-0.7558248 , 1.77796125, 0.30935199], [-1.0640522 , -0.40256508, 0.76424839]])
np.dot(arr.T,arr)
array([[ 4.99128485, -1.20160984, -2.82172339], [-1.20160984, 5.11494493, 1.12350592], [-2.82172339, 1.12350592, 1.98047894]])
arr = np.arange(16).reshape(2,2,4)arr
array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])
arr.transpose((1,0,2))
array([[[ 0, 1, 2, 3], [ 8, 9, 10, 11]], [[ 4, 5, 6, 7], [12, 13, 14, 15]]])
通用函数: 快速的元素级数组函数
arr = np.arange(10)arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.sqrt(arr)
array([ 0. , 1. , 1.41421356, 1.73205081, 2. , 2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ])
np.exp(arr)
array([ 1.00000000e+00, 2.71828183e+00, 7.38905610e+00, 2.00855369e+01, 5.45981500e+01, 1.48413159e+02, 4.03428793e+02, 1.09663316e+03, 2.98095799e+03, 8.10308393e+03])
x = np.random.randn(8)y = np.random.randn(8)print(x)print(y)
[ 0.28563688 -0.78764476 0.96194196 0.41051718 -0.41069022 -0.38002866 -1.13269593 -1.58454522][ 1.18490392 -1.03470854 -0.75579218 -1.57761954 0.2889456 -0.75329086 0.68484807 0.94755826]
np.rint(x)
array([ 0., -1., 1., 0., -0., -0., -1., -2.])
np.add(x,y)
array([ 1.4705408 , -1.82235331, 0.20614978, -1.16710236, -0.12174462, -1.13331953, -0.44784786, -0.63698696])
points = np.arange(-5,5,0.01)points
array([ -5.00000000e+00, -4.99000000e+00, -4.98000000e+00, -4.97000000e+00, -4.96000000e+00, -4.95000000e+00, -4.94000000e+00, -4.93000000e+00, -4.92000000e+00, -4.91000000e+00, -4.90000000e+00, -4.89000000e+00, -4.88000000e+00, -4.87000000e+00, -4.86000000e+00, -4.85000000e+00, -4.84000000e+00, -4.83000000e+00, -4.82000000e+00, -4.81000000e+00, -4.80000000e+00, -4.79000000e+00, -4.78000000e+00, -4.77000000e+00, -4.76000000e+00, -4.75000000e+00, -4.74000000e+00, -4.73000000e+00, -4.72000000e+00, -4.71000000e+00, -4.70000000e+00, -4.69000000e+00, -4.68000000e+00, -4.67000000e+00, -4.66000000e+00, -4.65000000e+00, -4.64000000e+00, -4.63000000e+00, -4.62000000e+00, -4.61000000e+00, -4.60000000e+00, -4.59000000e+00, -4.58000000e+00, -4.57000000e+00, -4.56000000e+00, -4.55000000e+00, -4.54000000e+00, -4.53000000e+00, -4.52000000e+00, -4.51000000e+00, -4.50000000e+00, -4.49000000e+00, -4.48000000e+00, -4.47000000e+00, -4.46000000e+00, -4.45000000e+00, -4.44000000e+00, -4.43000000e+00, -4.42000000e+00, -4.41000000e+00, -4.40000000e+00, -4.39000000e+00, -4.38000000e+00, -4.37000000e+00, -4.36000000e+00, -4.35000000e+00, -4.34000000e+00, -4.33000000e+00, -4.32000000e+00, -4.31000000e+00, -4.30000000e+00, -4.29000000e+00, -4.28000000e+00, -4.27000000e+00, -4.26000000e+00, -4.25000000e+00, -4.24000000e+00, -4.23000000e+00, -4.22000000e+00, -4.21000000e+00, -4.20000000e+00, -4.19000000e+00, -4.18000000e+00, -4.17000000e+00, -4.16000000e+00, -4.15000000e+00, -4.14000000e+00, -4.13000000e+00, -4.12000000e+00, -4.11000000e+00, -4.10000000e+00, -4.09000000e+00, -4.08000000e+00, -4.07000000e+00, -4.06000000e+00, -4.05000000e+00, -4.04000000e+00, -4.03000000e+00, -4.02000000e+00, -4.01000000e+00, -4.00000000e+00, -3.99000000e+00, -3.98000000e+00, -3.97000000e+00, -3.96000000e+00, -3.95000000e+00, -3.94000000e+00, -3.93000000e+00, -3.92000000e+00, -3.91000000e+00, -3.90000000e+00, -3.89000000e+00, -3.88000000e+00, -3.87000000e+00, -3.86000000e+00, -3.85000000e+00, -3.84000000e+00, -3.83000000e+00, -3.82000000e+00, -3.81000000e+00, -3.80000000e+00, -3.79000000e+00, -3.78000000e+00, -3.77000000e+00, -3.76000000e+00, -3.75000000e+00, -3.74000000e+00, -3.73000000e+00, -3.72000000e+00, -3.71000000e+00, -3.70000000e+00, -3.69000000e+00, -3.68000000e+00, -3.67000000e+00, -3.66000000e+00, -3.65000000e+00, -3.64000000e+00, -3.63000000e+00, -3.62000000e+00, -3.61000000e+00, -3.60000000e+00, -3.59000000e+00, -3.58000000e+00, -3.57000000e+00, -3.56000000e+00, -3.55000000e+00, -3.54000000e+00, -3.53000000e+00, -3.52000000e+00, -3.51000000e+00, -3.50000000e+00, -3.49000000e+00, -3.48000000e+00, -3.47000000e+00, -3.46000000e+00, -3.45000000e+00, -3.44000000e+00, -3.43000000e+00, -3.42000000e+00, -3.41000000e+00, -3.40000000e+00, -3.39000000e+00, -3.38000000e+00, -3.37000000e+00, -3.36000000e+00, -3.35000000e+00, -3.34000000e+00, -3.33000000e+00, -3.32000000e+00, -3.31000000e+00, -3.30000000e+00, -3.29000000e+00, -3.28000000e+00, -3.27000000e+00, -3.26000000e+00, -3.25000000e+00, -3.24000000e+00, -3.23000000e+00, -3.22000000e+00, -3.21000000e+00, -3.20000000e+00, -3.19000000e+00, -3.18000000e+00, -3.17000000e+00, -3.16000000e+00, -3.15000000e+00, -3.14000000e+00, -3.13000000e+00, -3.12000000e+00, -3.11000000e+00, -3.10000000e+00, -3.09000000e+00, -3.08000000e+00, -3.07000000e+00, -3.06000000e+00, -3.05000000e+00, -3.04000000e+00, -3.03000000e+00, -3.02000000e+00, -3.01000000e+00, -3.00000000e+00, -2.99000000e+00, -2.98000000e+00, -2.97000000e+00, -2.96000000e+00, -2.95000000e+00, -2.94000000e+00, -2.93000000e+00, -2.92000000e+00, -2.91000000e+00, -2.90000000e+00, -2.89000000e+00, -2.88000000e+00, -2.87000000e+00, -2.86000000e+00, -2.85000000e+00, -2.84000000e+00, -2.83000000e+00, -2.82000000e+00, -2.81000000e+00, -2.80000000e+00, -2.79000000e+00, -2.78000000e+00, -2.77000000e+00, -2.76000000e+00, -2.75000000e+00, -2.74000000e+00, -2.73000000e+00, -2.72000000e+00, -2.71000000e+00, -2.70000000e+00, -2.69000000e+00, -2.68000000e+00, -2.67000000e+00, -2.66000000e+00, -2.65000000e+00, -2.64000000e+00, -2.63000000e+00, -2.62000000e+00, -2.61000000e+00, -2.60000000e+00, -2.59000000e+00, -2.58000000e+00, -2.57000000e+00, -2.56000000e+00, -2.55000000e+00, -2.54000000e+00, -2.53000000e+00, -2.52000000e+00, -2.51000000e+00, -2.50000000e+00, -2.49000000e+00, -2.48000000e+00, -2.47000000e+00, -2.46000000e+00, -2.45000000e+00, -2.44000000e+00, -2.43000000e+00, -2.42000000e+00, -2.41000000e+00, -2.40000000e+00, -2.39000000e+00, -2.38000000e+00, -2.37000000e+00, -2.36000000e+00, -2.35000000e+00, -2.34000000e+00, -2.33000000e+00, -2.32000000e+00, -2.31000000e+00, -2.30000000e+00, -2.29000000e+00, -2.28000000e+00, -2.27000000e+00, -2.26000000e+00, -2.25000000e+00, -2.24000000e+00, -2.23000000e+00, -2.22000000e+00, -2.21000000e+00, -2.20000000e+00, -2.19000000e+00, -2.18000000e+00, -2.17000000e+00, -2.16000000e+00, -2.15000000e+00, -2.14000000e+00, -2.13000000e+00, -2.12000000e+00, -2.11000000e+00, -2.10000000e+00, -2.09000000e+00, -2.08000000e+00, -2.07000000e+00, -2.06000000e+00, -2.05000000e+00, -2.04000000e+00, -2.03000000e+00, -2.02000000e+00, -2.01000000e+00, -2.00000000e+00, -1.99000000e+00, -1.98000000e+00, -1.97000000e+00, -1.96000000e+00, -1.95000000e+00, -1.94000000e+00, -1.93000000e+00, -1.92000000e+00, -1.91000000e+00, -1.90000000e+00, -1.89000000e+00, -1.88000000e+00, -1.87000000e+00, -1.86000000e+00, -1.85000000e+00, -1.84000000e+00, -1.83000000e+00, -1.82000000e+00, -1.81000000e+00, -1.80000000e+00, -1.79000000e+00, -1.78000000e+00, -1.77000000e+00, -1.76000000e+00, -1.75000000e+00, -1.74000000e+00, -1.73000000e+00, -1.72000000e+00, -1.71000000e+00, -1.70000000e+00, -1.69000000e+00, -1.68000000e+00, -1.67000000e+00, -1.66000000e+00, -1.65000000e+00, -1.64000000e+00, -1.63000000e+00, -1.62000000e+00, -1.61000000e+00, -1.60000000e+00, -1.59000000e+00, -1.58000000e+00, -1.57000000e+00, -1.56000000e+00, -1.55000000e+00, -1.54000000e+00, -1.53000000e+00, -1.52000000e+00, -1.51000000e+00, -1.50000000e+00, -1.49000000e+00, -1.48000000e+00, -1.47000000e+00, -1.46000000e+00, -1.45000000e+00, -1.44000000e+00, -1.43000000e+00, -1.42000000e+00, -1.41000000e+00, -1.40000000e+00, -1.39000000e+00, -1.38000000e+00, -1.37000000e+00, -1.36000000e+00, -1.35000000e+00, -1.34000000e+00, -1.33000000e+00, -1.32000000e+00, -1.31000000e+00, -1.30000000e+00, -1.29000000e+00, -1.28000000e+00, -1.27000000e+00, -1.26000000e+00, -1.25000000e+00, -1.24000000e+00, -1.23000000e+00, -1.22000000e+00, -1.21000000e+00, -1.20000000e+00, -1.19000000e+00, -1.18000000e+00, -1.17000000e+00, -1.16000000e+00, -1.15000000e+00, -1.14000000e+00, -1.13000000e+00, -1.12000000e+00, -1.11000000e+00, -1.10000000e+00, -1.09000000e+00, -1.08000000e+00, -1.07000000e+00, -1.06000000e+00, -1.05000000e+00, -1.04000000e+00, -1.03000000e+00, -1.02000000e+00, -1.01000000e+00, -1.00000000e+00, -9.90000000e-01, -9.80000000e-01, -9.70000000e-01, -9.60000000e-01, -9.50000000e-01, -9.40000000e-01, -9.30000000e-01, -9.20000000e-01, -9.10000000e-01, -9.00000000e-01, -8.90000000e-01, -8.80000000e-01, -8.70000000e-01, -8.60000000e-01, -8.50000000e-01, -8.40000000e-01, -8.30000000e-01, -8.20000000e-01, -8.10000000e-01, -8.00000000e-01, -7.90000000e-01, -7.80000000e-01, -7.70000000e-01, -7.60000000e-01, -7.50000000e-01, -7.40000000e-01, -7.30000000e-01, -7.20000000e-01, -7.10000000e-01, -7.00000000e-01, -6.90000000e-01, -6.80000000e-01, -6.70000000e-01, -6.60000000e-01, -6.50000000e-01, -6.40000000e-01, -6.30000000e-01, -6.20000000e-01, -6.10000000e-01, -6.00000000e-01, -5.90000000e-01, -5.80000000e-01, -5.70000000e-01, -5.60000000e-01, -5.50000000e-01, -5.40000000e-01, -5.30000000e-01, -5.20000000e-01, -5.10000000e-01, -5.00000000e-01, -4.90000000e-01, -4.80000000e-01, -4.70000000e-01, -4.60000000e-01, -4.50000000e-01, -4.40000000e-01, -4.30000000e-01, -4.20000000e-01, -4.10000000e-01, -4.00000000e-01, -3.90000000e-01, -3.80000000e-01, -3.70000000e-01, -3.60000000e-01, -3.50000000e-01, -3.40000000e-01, -3.30000000e-01, -3.20000000e-01, -3.10000000e-01, -3.00000000e-01, -2.90000000e-01, -2.80000000e-01, -2.70000000e-01, -2.60000000e-01, -2.50000000e-01, -2.40000000e-01, -2.30000000e-01, -2.20000000e-01, -2.10000000e-01, -2.00000000e-01, -1.90000000e-01, -1.80000000e-01, -1.70000000e-01, -1.60000000e-01, -1.50000000e-01, -1.40000000e-01, -1.30000000e-01, -1.20000000e-01, -1.10000000e-01, -1.00000000e-01, -9.00000000e-02, -8.00000000e-02, -7.00000000e-02, -6.00000000e-02, -5.00000000e-02, -4.00000000e-02, -3.00000000e-02, -2.00000000e-02, -1.00000000e-02, -1.06581410e-13, 1.00000000e-02, 2.00000000e-02, 3.00000000e-02, 4.00000000e-02, 5.00000000e-02, 6.00000000e-02, 7.00000000e-02, 8.00000000e-02, 9.00000000e-02, 1.00000000e-01, 1.10000000e-01, 1.20000000e-01, 1.30000000e-01, 1.40000000e-01, 1.50000000e-01, 1.60000000e-01, 1.70000000e-01, 1.80000000e-01, 1.90000000e-01, 2.00000000e-01, 2.10000000e-01, 2.20000000e-01, 2.30000000e-01, 2.40000000e-01, 2.50000000e-01, 2.60000000e-01, 2.70000000e-01, 2.80000000e-01, 2.90000000e-01, 3.00000000e-01, 3.10000000e-01, 3.20000000e-01, 3.30000000e-01, 3.40000000e-01, 3.50000000e-01, 3.60000000e-01, 3.70000000e-01, 3.80000000e-01, 3.90000000e-01, 4.00000000e-01, 4.10000000e-01, 4.20000000e-01, 4.30000000e-01, 4.40000000e-01, 4.50000000e-01, 4.60000000e-01, 4.70000000e-01, 4.80000000e-01, 4.90000000e-01, 5.00000000e-01, 5.10000000e-01, 5.20000000e-01, 5.30000000e-01, 5.40000000e-01, 5.50000000e-01, 5.60000000e-01, 5.70000000e-01, 5.80000000e-01, 5.90000000e-01, 6.00000000e-01, 6.10000000e-01, 6.20000000e-01, 6.30000000e-01, 6.40000000e-01, 6.50000000e-01, 6.60000000e-01, 6.70000000e-01, 6.80000000e-01, 6.90000000e-01, 7.00000000e-01, 7.10000000e-01, 7.20000000e-01, 7.30000000e-01, 7.40000000e-01, 7.50000000e-01, 7.60000000e-01, 7.70000000e-01, 7.80000000e-01, 7.90000000e-01, 8.00000000e-01, 8.10000000e-01, 8.20000000e-01, 8.30000000e-01, 8.40000000e-01, 8.50000000e-01, 8.60000000e-01, 8.70000000e-01, 8.80000000e-01, 8.90000000e-01, 9.00000000e-01, 9.10000000e-01, 9.20000000e-01, 9.30000000e-01, 9.40000000e-01, 9.50000000e-01, 9.60000000e-01, 9.70000000e-01, 9.80000000e-01, 9.90000000e-01, 1.00000000e+00, 1.01000000e+00, 1.02000000e+00, 1.03000000e+00, 1.04000000e+00, 1.05000000e+00, 1.06000000e+00, 1.07000000e+00, 1.08000000e+00, 1.09000000e+00, 1.10000000e+00, 1.11000000e+00, 1.12000000e+00, 1.13000000e+00, 1.14000000e+00, 1.15000000e+00, 1.16000000e+00, 1.17000000e+00, 1.18000000e+00, 1.19000000e+00, 1.20000000e+00, 1.21000000e+00, 1.22000000e+00, 1.23000000e+00, 1.24000000e+00, 1.25000000e+00, 1.26000000e+00, 1.27000000e+00, 1.28000000e+00, 1.29000000e+00, 1.30000000e+00, 1.31000000e+00, 1.32000000e+00, 1.33000000e+00, 1.34000000e+00, 1.35000000e+00, 1.36000000e+00, 1.37000000e+00, 1.38000000e+00, 1.39000000e+00, 1.40000000e+00, 1.41000000e+00, 1.42000000e+00, 1.43000000e+00, 1.44000000e+00, 1.45000000e+00, 1.46000000e+00, 1.47000000e+00, 1.48000000e+00, 1.49000000e+00, 1.50000000e+00, 1.51000000e+00, 1.52000000e+00, 1.53000000e+00, 1.54000000e+00, 1.55000000e+00, 1.56000000e+00, 1.57000000e+00, 1.58000000e+00, 1.59000000e+00, 1.60000000e+00, 1.61000000e+00, 1.62000000e+00, 1.63000000e+00, 1.64000000e+00, 1.65000000e+00, 1.66000000e+00, 1.67000000e+00, 1.68000000e+00, 1.69000000e+00, 1.70000000e+00, 1.71000000e+00, 1.72000000e+00, 1.73000000e+00, 1.74000000e+00, 1.75000000e+00, 1.76000000e+00, 1.77000000e+00, 1.78000000e+00, 1.79000000e+00, 1.80000000e+00, 1.81000000e+00, 1.82000000e+00, 1.83000000e+00, 1.84000000e+00, 1.85000000e+00, 1.86000000e+00, 1.87000000e+00, 1.88000000e+00, 1.89000000e+00, 1.90000000e+00, 1.91000000e+00, 1.92000000e+00, 1.93000000e+00, 1.94000000e+00, 1.95000000e+00, 1.96000000e+00, 1.97000000e+00, 1.98000000e+00, 1.99000000e+00, 2.00000000e+00, 2.01000000e+00, 2.02000000e+00, 2.03000000e+00, 2.04000000e+00, 2.05000000e+00, 2.06000000e+00, 2.07000000e+00, 2.08000000e+00, 2.09000000e+00, 2.10000000e+00, 2.11000000e+00, 2.12000000e+00, 2.13000000e+00, 2.14000000e+00, 2.15000000e+00, 2.16000000e+00, 2.17000000e+00, 2.18000000e+00, 2.19000000e+00, 2.20000000e+00, 2.21000000e+00, 2.22000000e+00, 2.23000000e+00, 2.24000000e+00, 2.25000000e+00, 2.26000000e+00, 2.27000000e+00, 2.28000000e+00, 2.29000000e+00, 2.30000000e+00, 2.31000000e+00, 2.32000000e+00, 2.33000000e+00, 2.34000000e+00, 2.35000000e+00, 2.36000000e+00, 2.37000000e+00, 2.38000000e+00, 2.39000000e+00, 2.40000000e+00, 2.41000000e+00, 2.42000000e+00, 2.43000000e+00, 2.44000000e+00, 2.45000000e+00, 2.46000000e+00, 2.47000000e+00, 2.48000000e+00, 2.49000000e+00, 2.50000000e+00, 2.51000000e+00, 2.52000000e+00, 2.53000000e+00, 2.54000000e+00, 2.55000000e+00, 2.56000000e+00, 2.57000000e+00, 2.58000000e+00, 2.59000000e+00, 2.60000000e+00, 2.61000000e+00, 2.62000000e+00, 2.63000000e+00, 2.64000000e+00, 2.65000000e+00, 2.66000000e+00, 2.67000000e+00, 2.68000000e+00, 2.69000000e+00, 2.70000000e+00, 2.71000000e+00, 2.72000000e+00, 2.73000000e+00, 2.74000000e+00, 2.75000000e+00, 2.76000000e+00, 2.77000000e+00, 2.78000000e+00, 2.79000000e+00, 2.80000000e+00, 2.81000000e+00, 2.82000000e+00, 2.83000000e+00, 2.84000000e+00, 2.85000000e+00, 2.86000000e+00, 2.87000000e+00, 2.88000000e+00, 2.89000000e+00, 2.90000000e+00, 2.91000000e+00, 2.92000000e+00, 2.93000000e+00, 2.94000000e+00, 2.95000000e+00, 2.96000000e+00, 2.97000000e+00, 2.98000000e+00, 2.99000000e+00, 3.00000000e+00, 3.01000000e+00, 3.02000000e+00, 3.03000000e+00, 3.04000000e+00, 3.05000000e+00, 3.06000000e+00, 3.07000000e+00, 3.08000000e+00, 3.09000000e+00, 3.10000000e+00, 3.11000000e+00, 3.12000000e+00, 3.13000000e+00, 3.14000000e+00, 3.15000000e+00, 3.16000000e+00, 3.17000000e+00, 3.18000000e+00, 3.19000000e+00, 3.20000000e+00, 3.21000000e+00, 3.22000000e+00, 3.23000000e+00, 3.24000000e+00, 3.25000000e+00, 3.26000000e+00, 3.27000000e+00, 3.28000000e+00, 3.29000000e+00, 3.30000000e+00, 3.31000000e+00, 3.32000000e+00, 3.33000000e+00, 3.34000000e+00, 3.35000000e+00, 3.36000000e+00, 3.37000000e+00, 3.38000000e+00, 3.39000000e+00, 3.40000000e+00, 3.41000000e+00, 3.42000000e+00, 3.43000000e+00, 3.44000000e+00, 3.45000000e+00, 3.46000000e+00, 3.47000000e+00, 3.48000000e+00, 3.49000000e+00, 3.50000000e+00, 3.51000000e+00, 3.52000000e+00, 3.53000000e+00, 3.54000000e+00, 3.55000000e+00, 3.56000000e+00, 3.57000000e+00, 3.58000000e+00, 3.59000000e+00, 3.60000000e+00, 3.61000000e+00, 3.62000000e+00, 3.63000000e+00, 3.64000000e+00, 3.65000000e+00, 3.66000000e+00, 3.67000000e+00, 3.68000000e+00, 3.69000000e+00, 3.70000000e+00, 3.71000000e+00, 3.72000000e+00, 3.73000000e+00, 3.74000000e+00, 3.75000000e+00, 3.76000000e+00, 3.77000000e+00, 3.78000000e+00, 3.79000000e+00, 3.80000000e+00, 3.81000000e+00, 3.82000000e+00, 3.83000000e+00, 3.84000000e+00, 3.85000000e+00, 3.86000000e+00, 3.87000000e+00, 3.88000000e+00, 3.89000000e+00, 3.90000000e+00, 3.91000000e+00, 3.92000000e+00, 3.93000000e+00, 3.94000000e+00, 3.95000000e+00, 3.96000000e+00, 3.97000000e+00, 3.98000000e+00, 3.99000000e+00, 4.00000000e+00, 4.01000000e+00, 4.02000000e+00, 4.03000000e+00, 4.04000000e+00, 4.05000000e+00, 4.06000000e+00, 4.07000000e+00, 4.08000000e+00, 4.09000000e+00, 4.10000000e+00, 4.11000000e+00, 4.12000000e+00, 4.13000000e+00, 4.14000000e+00, 4.15000000e+00, 4.16000000e+00, 4.17000000e+00, 4.18000000e+00, 4.19000000e+00, 4.20000000e+00, 4.21000000e+00, 4.22000000e+00, 4.23000000e+00, 4.24000000e+00, 4.25000000e+00, 4.26000000e+00, 4.27000000e+00, 4.28000000e+00, 4.29000000e+00, 4.30000000e+00, 4.31000000e+00, 4.32000000e+00, 4.33000000e+00, 4.34000000e+00, 4.35000000e+00, 4.36000000e+00, 4.37000000e+00, 4.38000000e+00, 4.39000000e+00, 4.40000000e+00, 4.41000000e+00, 4.42000000e+00, 4.43000000e+00, 4.44000000e+00, 4.45000000e+00, 4.46000000e+00, 4.47000000e+00, 4.48000000e+00, 4.49000000e+00, 4.50000000e+00, 4.51000000e+00, 4.52000000e+00, 4.53000000e+00, 4.54000000e+00, 4.55000000e+00, 4.56000000e+00, 4.57000000e+00, 4.58000000e+00, 4.59000000e+00, 4.60000000e+00, 4.61000000e+00, 4.62000000e+00, 4.63000000e+00, 4.64000000e+00, 4.65000000e+00, 4.66000000e+00, 4.67000000e+00, 4.68000000e+00, 4.69000000e+00, 4.70000000e+00, 4.71000000e+00, 4.72000000e+00, 4.73000000e+00, 4.74000000e+00, 4.75000000e+00, 4.76000000e+00, 4.77000000e+00, 4.78000000e+00, 4.79000000e+00, 4.80000000e+00, 4.81000000e+00, 4.82000000e+00, 4.83000000e+00, 4.84000000e+00, 4.85000000e+00, 4.86000000e+00, 4.87000000e+00, 4.88000000e+00, 4.89000000e+00, 4.90000000e+00, 4.91000000e+00, 4.92000000e+00, 4.93000000e+00, 4.94000000e+00, 4.95000000e+00, 4.96000000e+00, 4.97000000e+00, 4.98000000e+00, 4.99000000e+00])
xs, ys = np.meshgrid(points, points)
ys
array([[-5. , -5. , -5. , ..., -5. , -5. , -5. ], [-4.99, -4.99, -4.99, ..., -4.99, -4.99, -4.99], [-4.98, -4.98, -4.98, ..., -4.98, -4.98, -4.98], ..., [ 4.97, 4.97, 4.97, ..., 4.97, 4.97, 4.97], [ 4.98, 4.98, 4.98, ..., 4.98, 4.98, 4.98], [ 4.99, 4.99, 4.99, ..., 4.99, 4.99, 4.99]])
import matplotlib.pyplot as pltz = np.sqrt(xs **2 + ys ** 2)z
array([[ 7.07106781, 7.06400028, 7.05693985, ..., 7.04988652, 7.05693985, 7.06400028], [ 7.06400028, 7.05692568, 7.04985815, ..., 7.04279774, 7.04985815, 7.05692568], [ 7.05693985, 7.04985815, 7.04278354, ..., 7.03571603, 7.04278354, 7.04985815], ..., [ 7.04988652, 7.04279774, 7.03571603, ..., 7.0286414 , 7.03571603, 7.04279774], [ 7.05693985, 7.04985815, 7.04278354, ..., 7.03571603, 7.04278354, 7.04985815], [ 7.06400028, 7.05692568, 7.04985815, ..., 7.04279774, 7.04985815, 7.05692568]])
#import matplotlib.pyplot as plt%matplotlib inline #why????plt.title('Image plot of $\sqrt{x^2+y^2}$ for a grid of values')plt.imshow(z, cmap =plt.cm.gray)plt.colorbar()
<matplotlib.colorbar.Colorbar at 0xdd9c1d0>
为什么画图前面要加一句%matplotlib inline,而有的画图只需要一句plt.show()
将条件逻辑表达为数组运算
xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])cond = np.array([True, False, True, True, False])
result = [(x if c else y) for x, y, c in zip(xarr, yarr, cond)]
result
[1.1000000000000001, 2.2000000000000002, 1.3, 1.3999999999999999, 2.5]
result = np.where(cond, xarr, yarr)
result
array([ 1.1, 2.2, 1.3, 1.4, 2.5])
result = np.where(arr > 0, 2, -2)result
array([[-2, 2, 2, 2], [ 2, 2, 2, 2], [-2, -2, -2, 2], [ 2, 2, 2, -2]])
plt.imshow(result)
<matplotlib.image.AxesImage at 0xe0a1908>
cond1 = [True,False]cond2 = [False,True]
result = []for i in range(2): if cond[i] and cond2[i]: result.append(0) elif cond1[i]: result.append(1) elif cond2[i]: result.append(2) else: result.append(3)result
[1, 2]
cond1 = np.array([True,False])cond2 = np.array([False,True])
np.where(cond1 & cond2,0, np.where(cond1, 1, np.where(cond2,2,3)))
array([1, 2])
result = 1 * (cond1 -cond2) + 2 * (cond2 & -cond1) +3 * -(cond1 |cond2)result
C:\software\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: DeprecationWarning: numpy boolean subtract, the `-` operator, is deprecated, use the bitwise_xor, the `^` operator, or the logical_xor function instead. """Entry point for launching an IPython kernel.C:\software\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: DeprecationWarning: numpy boolean negative, the `-` operator, is deprecated, use the `~` operator or the logical_not function instead. """Entry point for launching an IPython kernel.array([1, 3])
数学和统计方法
arr = np.random.randn(5,4)arr
array([[-0.36377842, -0.17607122, -0.0258077 , -0.5865342 ], [-1.47991561, 1.10921795, -0.17721261, -0.06152169], [-1.39358906, -0.66324552, -0.42652749, 1.07462862], [-0.39533925, -1.0827531 , -0.73648657, -0.15557699], [ 0.62799356, -0.61692436, -0.91043984, -0.08881203]])
arr.mean()
-0.3264347767422266
np.mean(arr)
-0.3264347767422266
arr.sum()
-6.5286955348445321
np.sum(arr)
-6.5286955348445321
arr.sum(axis = 1)
array([-1.15219154, -0.60943196, -1.40873344, -2.37015592, -0.98818266])
arr.sum(1)
array([-1.15219154, -0.60943196, -1.40873344, -2.37015592, -0.98818266])
arr.mean(1)
array([-0.28804788, -0.15235799, -0.35218336, -0.59253898, -0.24704567])
arr.mean(0)
array([-0.60092576, -0.28595525, -0.45529484, 0.03643674])
arr = np.array([[0,1,2],[3,4,5],[6,7,8]])arr
array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
arr.cumsum(1)
array([[ 0, 1, 3], [ 3, 7, 12], [ 6, 13, 21]], dtype=int32)
arr.cumprod(1)
array([[ 0, 0, 0], [ 3, 12, 60], [ 6, 42, 336]], dtype=int32)
用于布尔型数组的方法
arr = np.random.randn(100)arr
array([-0.33080236, 1.39731624, -0.63438849, -0.27417423, 0.1066853 , 0.08176844, 0.94680007, 0.82837666, -0.39614341, 0.10209779, 0.94752076, 0.59294992, -0.17801706, 1.39303804, 0.1615773 , -1.07270904, 1.52843682, -0.15335152, 0.33041451, 1.92640587, 2.16608662, -0.13468996, -0.80318435, 0.68395289, -2.68059591, 0.75975232, 0.8624497 , -0.40960463, 2.53795684, -0.04270983, -0.85162822, -0.57499644, 0.05397767, 0.08112238, 0.69370525, 1.61010582, 0.73711426, -1.66321839, 0.36010073, 1.73937965, 0.18620921, -0.73990919, 1.55165714, -0.49130287, 0.73736008, -0.65542611, 0.68313517, 0.93248214, 0.32072444, 0.15719621, -0.58404954, -1.18846903, -1.21258747, 0.0847759 , 1.01495945, 0.13684394, 0.49404896, -1.08274441, -0.42795516, 0.08322297, -0.40474038, 0.09877496, 0.41921382, -0.54942632, -0.41349059, -0.67371969, -1.51507714, 1.46129515, -1.10477602, -1.04760436, -0.29026757, 2.38869938, -1.23313778, 0.51819882, 0.03096704, 1.56216147, -0.44781858, 1.07225266, -1.07910887, -2.23256931, -1.16643406, -0.96328042, -0.46139959, 0.28375584, 0.07444683, -0.68675767, 0.35658852, 1.40111431, -1.38139327, 1.03927675, -1.60659403, 0.57145567, -0.11907813, -1.2219809 , -0.66428365, -1.4139061 , -1.67651961, -0.59806616, 0.59122245, 0.25954556])
(arr > 0).sum()
53
bools = np.array([False, False, True, False])bools.any()
True
bools.all()
False
arr = np.random.randn(8)arr
array([ 0.70545065, 0.77665201, -0.64170527, -0.04357847, -0.29443727, -0.53598113, -0.41382967, 0.07754725])
arr.sort()arr
array([-0.64170527, -0.53598113, -0.41382967, -0.29443727, -0.04357847, 0.07754725, 0.70545065, 0.77665201])
arr = np.random.randn(5,3)arr
array([[ 0.01207145, -0.22076429, -1.27830997], [-1.02254742, 1.10692889, 0.50115412], [-1.75082399, -0.33671574, -1.22980103], [ 0.36758255, 0.99206518, -0.65983239], [-0.95680182, -0.41475066, 0.15182405]])
arr.sort(1)arr
array([[-1.27830997, -0.22076429, 0.01207145], [-1.02254742, 0.50115412, 1.10692889], [-1.75082399, -1.22980103, -0.33671574], [-0.65983239, 0.36758255, 0.99206518], [-0.95680182, -0.41475066, 0.15182405]])
large_arr = np.random.randn(1000)large_arr.sort()large_arr
array([ -3.13601821e+00, -2.99904054e+00, -2.74212869e+00, -2.73338432e+00, -2.66555618e+00, -2.60590138e+00, -2.52873495e+00, -2.42398037e+00, -2.21593473e+00, -2.10193673e+00, -2.09235572e+00, -2.08657504e+00, -2.08225175e+00, -2.07221549e+00, -2.03348710e+00, -2.01684786e+00, -2.00754371e+00, -1.98459142e+00, -1.95478230e+00, -1.94432959e+00, -1.94333526e+00, -1.93094530e+00, -1.91088249e+00, -1.90636040e+00, -1.87764191e+00, -1.85614786e+00, -1.83216107e+00, -1.82944145e+00, -1.80442524e+00, -1.80268048e+00, -1.78967583e+00, -1.78361883e+00, -1.76666887e+00, -1.75933662e+00, -1.75444546e+00, -1.74881215e+00, -1.74683376e+00, -1.71493838e+00, -1.64509440e+00, -1.63848847e+00, -1.63432418e+00, -1.57471348e+00, -1.57128096e+00, -1.56626084e+00, -1.56356724e+00, -1.56022657e+00, -1.55667896e+00, -1.55023989e+00, -1.54863112e+00, -1.54775389e+00, -1.52921609e+00, -1.52140557e+00, -1.51815592e+00, -1.51699006e+00, -1.51698200e+00, -1.51627755e+00, -1.50859675e+00, -1.50831600e+00, -1.49710160e+00, -1.49184397e+00, -1.49049603e+00, -1.48781407e+00, -1.48687686e+00, -1.48274449e+00, -1.48253836e+00, -1.48210874e+00, -1.47224754e+00, -1.45393091e+00, -1.44478300e+00, -1.43698612e+00, -1.42676307e+00, -1.41438317e+00, -1.40958697e+00, -1.40568907e+00, -1.37983790e+00, -1.36644514e+00, -1.36161890e+00, -1.36125241e+00, -1.34975220e+00, -1.33791219e+00, -1.33749992e+00, -1.31914006e+00, -1.30914053e+00, -1.30789423e+00, -1.30643177e+00, -1.30555575e+00, -1.30344587e+00, -1.29858964e+00, -1.29636705e+00, -1.29565226e+00, -1.29375466e+00, -1.29241563e+00, -1.28463122e+00, -1.27951444e+00, -1.26367278e+00, -1.26305822e+00, -1.24254021e+00, -1.24235221e+00, -1.23535207e+00, -1.22731165e+00, -1.22483394e+00, -1.22174351e+00, -1.21754486e+00, -1.20388509e+00, -1.19763044e+00, -1.19732461e+00, -1.19430902e+00, -1.18962347e+00, -1.17012624e+00, -1.16891609e+00, -1.16808656e+00, -1.15523104e+00, -1.14368497e+00, -1.13604132e+00, -1.12312404e+00, -1.11712820e+00, -1.11608297e+00, -1.11557044e+00, -1.10751133e+00, -1.10464469e+00, -1.10126047e+00, -1.09743761e+00, -1.09619027e+00, -1.09538839e+00, -1.09527847e+00, -1.09508649e+00, -1.08441566e+00, -1.08425566e+00, -1.07535386e+00, -1.07423788e+00, -1.07383001e+00, -1.07316898e+00, -1.07141569e+00, -1.06967540e+00, -1.06642370e+00, -1.04957042e+00, -1.04659892e+00, -1.03828769e+00, -1.03559406e+00, -1.03553927e+00, -1.03547520e+00, -1.02605389e+00, -1.02505679e+00, -1.02461126e+00, -1.02285844e+00, -1.02256579e+00, -1.01857122e+00, -1.01389186e+00, -1.00399527e+00, -1.00383838e+00, -1.00293336e+00, -9.98959259e-01, -9.98690816e-01, -9.97982364e-01, -9.95634814e-01, -9.86987201e-01, -9.83082305e-01, -9.76294878e-01, -9.74573861e-01, -9.71764059e-01, -9.62078270e-01, -9.59421728e-01, -9.51539565e-01, -9.50195502e-01, -9.44768325e-01, -9.42139719e-01, -9.37097741e-01, -9.34099647e-01, -9.29478087e-01, -9.21381882e-01, -9.20150746e-01, -9.20116272e-01, -9.14924192e-01, -9.05374148e-01, -8.89069352e-01, -8.86000599e-01, -8.81615032e-01, -8.81072960e-01, -8.79241062e-01, -8.79137950e-01, -8.78502132e-01, -8.73722962e-01, -8.71343877e-01, -8.69658191e-01, -8.65315289e-01, -8.64990735e-01, -8.62798008e-01, -8.55017326e-01, -8.49858088e-01, -8.48554884e-01, -8.47944430e-01, -8.42892072e-01, -8.39409257e-01, -8.32276804e-01, -8.31261476e-01, -8.23607389e-01, -8.19954062e-01, -8.19581054e-01, -8.17666567e-01, -8.15285262e-01, -8.13205165e-01, -8.04877356e-01, -8.03808208e-01, -7.97577549e-01, -7.91123958e-01, -7.85348275e-01, -7.82382617e-01, -7.81909361e-01, -7.71081207e-01, -7.69618776e-01, -7.67665702e-01, -7.66337169e-01, -7.64329833e-01, -7.63896325e-01, -7.58751047e-01, -7.58741069e-01, -7.57078564e-01, -7.53957786e-01, -7.49925780e-01, -7.48575341e-01, -7.42818705e-01, -7.42226722e-01, -7.36305394e-01, -7.35755695e-01, -7.29694076e-01, -7.24833409e-01, -7.19942601e-01, -7.18369929e-01, -7.16526745e-01, -7.07111178e-01, -7.05494865e-01, -7.04460166e-01, -7.03909278e-01, -7.00306245e-01, -6.97572436e-01, -6.90400928e-01, -6.84749760e-01, -6.77328428e-01, -6.76298894e-01, -6.73097672e-01, -6.72000537e-01, -6.71775672e-01, -6.60177713e-01, -6.51938036e-01, -6.50659285e-01, -6.50083550e-01, -6.46790285e-01, -6.46300183e-01, -6.45020322e-01, -6.42882889e-01, -6.35941226e-01, -6.31232215e-01, -6.30154667e-01, -6.29482107e-01, -6.27436155e-01, -6.22780005e-01, -6.20918140e-01, -6.17079086e-01, -6.16556466e-01, -6.15805312e-01, -6.13495401e-01, -6.12209274e-01, -6.09539970e-01, -6.07097746e-01, -6.03437216e-01, -5.97312581e-01, -5.96390113e-01, -5.83623922e-01, -5.81725695e-01, -5.76664161e-01, -5.74869491e-01, -5.71240627e-01, -5.70155389e-01, -5.70064171e-01, -5.68909141e-01, -5.66104228e-01, -5.64239011e-01, -5.59918362e-01, -5.55869504e-01, -5.55115124e-01, -5.52994679e-01, -5.52046682e-01, -5.51763238e-01, -5.42888598e-01, -5.40551570e-01, -5.36428014e-01, -5.35638004e-01, -5.27260715e-01, -5.26669791e-01, -5.20219920e-01, -5.16502669e-01, -5.16294725e-01, -5.13066132e-01, -5.07322069e-01, -5.07063786e-01, -5.05838238e-01, -5.04287992e-01, -5.02592526e-01, -5.02056296e-01, -4.93558209e-01, -4.92376798e-01, -4.91527356e-01, -4.89515434e-01, -4.85001683e-01, -4.79026282e-01, -4.75693571e-01, -4.73794919e-01, -4.62190712e-01, -4.55454873e-01, -4.53456269e-01, -4.52548795e-01, -4.52521286e-01, -4.45776551e-01, -4.43802858e-01, -4.42559260e-01, -4.41495362e-01, -4.41283827e-01, -4.35259709e-01, -4.33336506e-01, -4.26690483e-01, -4.23014097e-01, -4.22551925e-01, -4.20587840e-01, -4.20417358e-01, -4.15178631e-01, -4.13923204e-01, -4.12730169e-01, -4.12670633e-01, -4.12228916e-01, -4.11458203e-01, -4.11133456e-01, -4.09916035e-01, -4.05264900e-01, -4.00094962e-01, -3.97535841e-01, -3.92389790e-01, -3.85377102e-01, -3.85137145e-01, -3.83612293e-01, -3.78920895e-01, -3.76511045e-01, -3.73643936e-01, -3.73518671e-01, -3.73496020e-01, -3.71031709e-01, -3.68808382e-01, -3.67902989e-01, -3.67339572e-01, -3.66089264e-01, -3.65754163e-01, -3.62554137e-01, -3.62462271e-01, -3.60755038e-01, -3.50517473e-01, -3.49352282e-01, -3.47923116e-01, -3.45146853e-01, -3.41478693e-01, -3.41206880e-01, -3.32469974e-01, -3.30378402e-01, -3.28022566e-01, -3.25363955e-01, -3.24085262e-01, -3.17318822e-01, -3.16622933e-01, -3.14479259e-01, -3.07858769e-01, -3.06446651e-01, -3.00468573e-01, -2.99432436e-01, -2.98934869e-01, -2.95175525e-01, -2.91121939e-01, -2.89585449e-01, -2.88221400e-01, -2.87785298e-01, -2.86185801e-01, -2.85474484e-01, -2.85087616e-01, -2.83671351e-01, -2.79684313e-01, -2.78727106e-01, -2.76370997e-01, -2.73292106e-01, -2.71147183e-01, -2.66708811e-01, -2.63846514e-01, -2.63145641e-01, -2.62983039e-01, -2.54284537e-01, -2.51831038e-01, -2.51623537e-01, -2.50125521e-01, -2.48267289e-01, -2.46176905e-01, -2.42246712e-01, -2.41404691e-01, -2.39796485e-01, -2.39511875e-01, -2.35026933e-01, -2.25543138e-01, -2.25354823e-01, -2.22003769e-01, -2.20943035e-01, -2.18701799e-01, -2.17532171e-01, -2.15714779e-01, -2.13753941e-01, -2.09296599e-01, -2.06422474e-01, -2.05939198e-01, -2.05569003e-01, -2.02956587e-01, -2.02272775e-01, -2.01586866e-01, -2.01186576e-01, -1.99706846e-01, -1.98218562e-01, -1.95949841e-01, -1.93527083e-01, -1.93004617e-01, -1.84901086e-01, -1.84856059e-01, -1.83676742e-01, -1.78526188e-01, -1.76831970e-01, -1.74207625e-01, -1.70502481e-01, -1.65035573e-01, -1.64260033e-01, -1.63241852e-01, -1.60776785e-01, -1.60261839e-01, -1.58409580e-01, -1.50722676e-01, -1.50651569e-01, -1.47448733e-01, -1.44296587e-01, -1.43545778e-01, -1.40727192e-01, -1.38268927e-01, -1.37545978e-01, -1.36953781e-01, -1.36777202e-01, -1.35566959e-01, -1.33075201e-01, -1.31158064e-01, -1.28897109e-01, -1.20379394e-01, -1.17721381e-01, -1.17649103e-01, -1.16550816e-01, -1.15694665e-01, -1.15313442e-01, -1.09892765e-01, -1.07633421e-01, -1.06987898e-01, -1.06590991e-01, -1.02033802e-01, -9.85101701e-02, -9.44496464e-02, -9.23652250e-02, -9.23004674e-02, -9.01233339e-02, -8.54720188e-02, -8.23344469e-02, -8.07123341e-02, -8.00790868e-02, -7.80445611e-02, -7.75014639e-02, -7.59132127e-02, -6.77798779e-02, -6.46576688e-02, -6.20123741e-02, -5.48160764e-02, -5.37755399e-02, -5.25433533e-02, -4.96375807e-02, -4.84555571e-02, -4.68512771e-02, -4.49288708e-02, -4.36948838e-02, -4.28416000e-02, -4.17439932e-02, -4.01092546e-02, -3.96515283e-02, -3.95134590e-02, -3.78218301e-02, -3.49705836e-02, -3.34295354e-02, -3.03984690e-02, -2.83698356e-02, -1.59560043e-02, -6.90971207e-03, -4.10276511e-03, -2.62012488e-03, 1.52766021e-03, 2.30387930e-03, 2.60165886e-03, 1.76278569e-02, 2.77800528e-02, 2.93187793e-02, 3.06136521e-02, 3.32049369e-02, 3.87335918e-02, 4.00796966e-02, 4.00828912e-02, 4.45939368e-02, 4.67199231e-02, 4.82380297e-02, 5.13702638e-02, 5.15819054e-02, 5.57402777e-02, 5.58094588e-02, 5.63972960e-02, 5.85908043e-02, 5.93539850e-02, 6.20743439e-02, 6.98583184e-02, 7.18075886e-02, 7.18822376e-02, 7.48870799e-02, 7.65223273e-02, 7.68375832e-02, 7.90422964e-02, 8.02216626e-02, 8.60626647e-02, 8.77264112e-02, 9.02639656e-02, 9.27599746e-02, 9.59576050e-02, 9.98835960e-02, 1.00166297e-01, 1.01343431e-01, 1.02138794e-01, 1.04609043e-01, 1.05971628e-01, 1.06805842e-01, 1.10139938e-01, 1.12662756e-01, 1.15481222e-01, 1.16074429e-01, 1.16318620e-01, 1.20096585e-01, 1.22693903e-01, 1.25032503e-01, 1.37583286e-01, 1.38473158e-01, 1.41680635e-01, 1.52019256e-01, 1.54649820e-01, 1.60163104e-01, 1.64056923e-01, 1.68018169e-01, 1.70454463e-01, 1.71926921e-01, 1.76898827e-01, 1.78989720e-01, 1.79444473e-01, 1.83217524e-01, 1.85975920e-01, 1.86677087e-01, 1.92866221e-01, 1.96902803e-01, 2.01571885e-01, 2.04795457e-01, 2.06707305e-01, 2.14238918e-01, 2.15906180e-01, 2.18861952e-01, 2.19423758e-01, 2.20312996e-01, 2.24960231e-01, 2.30855855e-01, 2.30953528e-01, 2.32423085e-01, 2.33393493e-01, 2.36340512e-01, 2.41489410e-01, 2.42366172e-01, 2.45200385e-01, 2.45942040e-01, 2.46376877e-01, 2.59249674e-01, 2.60174654e-01, 2.63765884e-01, 2.65277845e-01, 2.66920521e-01, 2.73040459e-01, 2.73982228e-01, 2.77709585e-01, 2.77999866e-01, 2.78023708e-01, 2.80639131e-01, 2.81294166e-01, 2.85941486e-01, 2.88132889e-01, 2.89079018e-01, 2.91987170e-01, 2.94523428e-01, 2.96905233e-01, 3.03116517e-01, 3.05423605e-01, 3.05461069e-01, 3.06411877e-01, 3.08275009e-01, 3.09691630e-01, 3.13192270e-01, 3.17623641e-01, 3.19747502e-01, 3.24430552e-01, 3.26181801e-01, 3.26935321e-01, 3.27942827e-01, 3.28737025e-01, 3.33197414e-01, 3.35785818e-01, 3.55248283e-01, 3.58030474e-01, 3.58178086e-01, 3.61676996e-01, 3.64704429e-01, 3.69059903e-01, 3.70712569e-01, 3.70840389e-01, 3.74441844e-01, 3.81142070e-01, 3.85253255e-01, 3.85624711e-01, 3.86932510e-01, 3.87310449e-01, 3.87629205e-01, 3.91854566e-01, 3.93626248e-01, 3.95720178e-01, 4.02460481e-01, 4.07792832e-01, 4.08675356e-01, 4.11774875e-01, 4.16234335e-01, 4.18034074e-01, 4.18381873e-01, 4.21533227e-01, 4.28860075e-01, 4.29164391e-01, 4.29686534e-01, 4.31617112e-01, 4.36816533e-01, 4.38357865e-01, 4.39163246e-01, 4.46426084e-01, 4.46711964e-01, 4.50180998e-01, 4.51143877e-01, 4.52891211e-01, 4.54212658e-01, 4.56069524e-01, 4.56092207e-01, 4.58283561e-01, 4.60381797e-01, 4.64947689e-01, 4.68605964e-01, 4.68942506e-01, 4.73060825e-01, 4.73377381e-01, 4.74137978e-01, 4.76633579e-01, 4.77239612e-01, 4.77776756e-01, 4.79183170e-01, 4.80101508e-01, 4.83269792e-01, 4.95950421e-01, 4.96317724e-01, 4.98302392e-01, 5.04217603e-01, 5.04242992e-01, 5.04868981e-01, 5.05101048e-01, 5.06926475e-01, 5.07785645e-01, 5.08845358e-01, 5.09592375e-01, 5.10213090e-01, 5.12238318e-01, 5.13635860e-01, 5.17243235e-01, 5.18700044e-01, 5.24084018e-01, 5.25312635e-01, 5.26386026e-01, 5.34717244e-01, 5.35204369e-01, 5.41390808e-01, 5.46297779e-01, 5.46933131e-01, 5.50735947e-01, 5.52482636e-01, 5.52662259e-01, 5.55435195e-01, 5.57333644e-01, 5.63186398e-01, 5.63379670e-01, 5.64607181e-01, 5.72737024e-01, 5.79325252e-01, 5.84332356e-01, 5.85691252e-01, 5.88077675e-01, 5.89022420e-01, 5.90810672e-01, 5.93136772e-01, 5.94498059e-01, 5.95621287e-01, 5.97346136e-01, 5.99860797e-01, 5.99873026e-01, 6.00669236e-01, 6.08138667e-01, 6.08589006e-01, 6.11301651e-01, 6.12272055e-01, 6.13909849e-01, 6.15614844e-01, 6.26286209e-01, 6.27578731e-01, 6.34570371e-01, 6.35654675e-01, 6.36156489e-01, 6.37574637e-01, 6.37611896e-01, 6.38096643e-01, 6.38507685e-01, 6.42934574e-01, 6.44898877e-01, 6.51445203e-01, 6.53767314e-01, 6.54135439e-01, 6.54396768e-01, 6.56078944e-01, 6.67123477e-01, 6.71536531e-01, 6.71943848e-01, 6.73645709e-01, 6.74586551e-01, 6.76562467e-01, 6.79195898e-01, 6.83567363e-01, 6.87987373e-01, 6.88962441e-01, 6.91376530e-01, 6.94300228e-01, 7.01917247e-01, 7.05022590e-01, 7.05503985e-01, 7.07366058e-01, 7.08211537e-01, 7.09682802e-01, 7.10658007e-01, 7.12228710e-01, 7.12487418e-01, 7.18508536e-01, 7.34585593e-01, 7.36091203e-01, 7.43918761e-01, 7.44214974e-01, 7.47164301e-01, 7.47824426e-01, 7.51168587e-01, 7.54451077e-01, 7.55777137e-01, 7.59312411e-01, 7.63555265e-01, 7.64804872e-01, 7.65809782e-01, 7.67686032e-01, 7.69962252e-01, 7.72177553e-01, 7.75200182e-01, 7.83260549e-01, 7.83897854e-01, 7.84752546e-01, 7.88161278e-01, 7.90809203e-01, 7.94222769e-01, 7.99347504e-01, 8.01482296e-01, 8.05430601e-01, 8.06747475e-01, 8.08349778e-01, 8.10938994e-01, 8.18329803e-01, 8.19150280e-01, 8.21352154e-01, 8.21886642e-01, 8.23005922e-01, 8.26181387e-01, 8.26296605e-01, 8.29609625e-01, 8.32750116e-01, 8.38116551e-01, 8.38451089e-01, 8.40063741e-01, 8.41889515e-01, 8.47250511e-01, 8.53041771e-01, 8.53344407e-01, 8.60067684e-01, 8.70655019e-01, 8.76815976e-01, 8.83958915e-01, 8.84647908e-01, 8.87209193e-01, 8.88721122e-01, 8.89945174e-01, 8.91422069e-01, 8.91756890e-01, 8.96430464e-01, 9.04230830e-01, 9.08772762e-01, 9.12915294e-01, 9.13128479e-01, 9.20857768e-01, 9.28348111e-01, 9.29956449e-01, 9.34937718e-01, 9.42107894e-01, 9.42447958e-01, 9.42762179e-01, 9.45408299e-01, 9.65344268e-01, 9.71280617e-01, 9.71713143e-01, 9.77956402e-01, 9.91887215e-01, 9.93886263e-01, 9.95226932e-01, 9.95681306e-01, 9.96644520e-01, 1.00062710e+00, 1.00161039e+00, 1.00906336e+00, 1.00943567e+00, 1.01629349e+00, 1.02337725e+00, 1.02544637e+00, 1.02977442e+00, 1.03221269e+00, 1.03891833e+00, 1.04142800e+00, 1.04988398e+00, 1.05225261e+00, 1.05259456e+00, 1.05658663e+00, 1.06515569e+00, 1.07225371e+00, 1.08017932e+00, 1.08935266e+00, 1.10138735e+00, 1.10498213e+00, 1.10499687e+00, 1.11298762e+00, 1.11321027e+00, 1.11773694e+00, 1.12118828e+00, 1.12587328e+00, 1.12681515e+00, 1.12883789e+00, 1.13289173e+00, 1.13581795e+00, 1.14311089e+00, 1.14698670e+00, 1.14860905e+00, 1.15713907e+00, 1.15941259e+00, 1.16411387e+00, 1.18742143e+00, 1.18772562e+00, 1.20381095e+00, 1.21489223e+00, 1.21729471e+00, 1.22645082e+00, 1.23349057e+00, 1.23968093e+00, 1.24306366e+00, 1.24699135e+00, 1.25310094e+00, 1.25403014e+00, 1.25426396e+00, 1.26647412e+00, 1.27020732e+00, 1.27404623e+00, 1.27497440e+00, 1.28683057e+00, 1.29723559e+00, 1.29918978e+00, 1.29997574e+00, 1.32318818e+00, 1.33038970e+00, 1.33599123e+00, 1.33917120e+00, 1.33923734e+00, 1.34021524e+00, 1.34709089e+00, 1.35483138e+00, 1.35708015e+00, 1.35718030e+00, 1.37107061e+00, 1.37124898e+00, 1.39129482e+00, 1.39223975e+00, 1.39401477e+00, 1.40693554e+00, 1.41305936e+00, 1.42070619e+00, 1.45294528e+00, 1.46382285e+00, 1.47457031e+00, 1.47753817e+00, 1.48772859e+00, 1.49253034e+00, 1.49934225e+00, 1.50928900e+00, 1.52961572e+00, 1.52986261e+00, 1.56365845e+00, 1.57983856e+00, 1.59026183e+00, 1.59565568e+00, 1.60142692e+00, 1.61162005e+00, 1.63772040e+00, 1.64487334e+00, 1.66851515e+00, 1.68202235e+00, 1.68310854e+00, 1.68373641e+00, 1.69173757e+00, 1.71118719e+00, 1.72073518e+00, 1.73009118e+00, 1.74389518e+00, 1.74773435e+00, 1.75435546e+00, 1.75565456e+00, 1.76316739e+00, 1.78255471e+00, 1.78590219e+00, 1.78899659e+00, 1.79327582e+00, 1.81984208e+00, 1.82812728e+00, 1.83508063e+00, 1.83552179e+00, 1.85945759e+00, 1.86093388e+00, 1.86307686e+00, 1.86752481e+00, 1.87803050e+00, 1.87905873e+00, 1.88014423e+00, 1.89459817e+00, 1.89995276e+00, 1.90399462e+00, 1.90617324e+00, 1.90756263e+00, 1.92813075e+00, 1.92969789e+00, 1.95224043e+00, 1.96220438e+00, 1.96477208e+00, 1.97236544e+00, 2.04427084e+00, 2.05297039e+00, 2.05511306e+00, 2.07505527e+00, 2.10807892e+00, 2.10897643e+00, 2.14252697e+00, 2.17120786e+00, 2.18356276e+00, 2.20202623e+00, 2.20321044e+00, 2.26011463e+00, 2.28667866e+00, 2.34907293e+00, 2.36049154e+00, 2.36243485e+00, 2.42856432e+00, 2.45515894e+00, 2.53091226e+00, 2.55885939e+00, 2.57331825e+00, 2.58950812e+00, 2.60262219e+00, 2.66302707e+00, 2.76920687e+00, 2.88631116e+00, 3.45176404e+00])
large_arr[int(0.05 * len(large_arr))]
-1.5292160926263139
唯一化以及其他的集合逻辑
names = np.array(['Bob', 'Joe', 'Will','Bob','Will','Joe','Joe'])np.unique(names)
array(['Bob', 'Joe', 'Will'], dtype='<U4')
ints = np.array([1,3,4,3,5,3,4,5,6,3])np.unique(ints)
array([1, 3, 4, 5, 6])
ints
array([1, 3, 4, 3, 5, 3, 4, 5, 6, 3])
set(ints)
{1, 3, 4, 5, 6}
sorted(set(ints))
[1, 3, 4, 5, 6]
values = np.array([6,0,0,3,2,5,6])
np.in1d(values,[2,3,4])
array([False, False, False, True, True, False, False], dtype=bool)
用于数组的文件输入输出
arr = np.arange(10)np.save('some_array', arr)
np.load('some_array.npy')
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.savez('array_archive.npz',a =arr, b= arr)
arch = np.load('array_archive.npz')
arch['b']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr = np.loadtxt('D:\pytest\pydata-book-master\ch04\\array_ex.txt', delimiter = ',')
arr
array([[ 0.580052, 0.18673 , 1.040717, 1.134411], [ 0.194163, -0.636917, -0.938659, 0.124094], [-0.12641 , 0.268607, -0.695724, 0.047428], [-1.484413, 0.004176, -0.744203, 0.005487], [ 2.302869, 0.200131, 1.670238, -1.88109 ], [-0.19323 , 1.047233, 0.482803, 0.960334]])
线性代数
x = np.array([[1,2,3],[4,5,6]])y = np.array([[6,3],[-1,34],[4,5]])
x
array([[1, 2, 3], [4, 5, 6]])
y
array([[ 6, 3], [-1, 34], [ 4, 5]])
z = np.dot(x,y)
z
array([[ 16, 86], [ 43, 212]])
np.dot(x, np.ones(3))
array([ 6., 15.])
from numpy.linalg import inv,qrX = np.random.randn(5,5)mat = X.T.dot(X)inv(mat)
array([[ 2.432557 , 2.19140476, -0.08411948, 2.35185197, 0.81360466], [ 2.19140476, 4.3248481 , -1.74727017, 3.07199859, 0.94147305], [-0.08411948, -1.74727017, 1.51194781, -0.60697159, -0.13637347], [ 2.35185197, 3.07199859, -0.60697159, 3.58547061, 1.15508506], [ 0.81360466, 0.94147305, -0.13637347, 1.15508506, 0.47517617]])
mat.dot(inv(mat))
array([[ 1.00000000e+00, 0.00000000e+00, 1.11022302e-16, -1.11022302e-16, 5.55111512e-17], [ -5.55111512e-17, 1.00000000e+00, -5.27355937e-16, 0.00000000e+00, -1.11022302e-16], [ 3.05311332e-16, -1.08246745e-15, 1.00000000e+00, -2.22044605e-16, -4.99600361e-16], [ 0.00000000e+00, 1.33226763e-15, -2.22044605e-16, 1.00000000e+00, 2.22044605e-16], [ 3.55271368e-15, 1.77635684e-15, -2.22044605e-16, 1.77635684e-15, 1.00000000e+00]])
q,r = qr(mat)
r
array([[-3.21230545, 3.76014964, 4.23091795, -1.5152842 , 3.49612957], [ 0. , -1.91632912, -1.84146807, 1.35863595, 0.43935052], [ 0. , 0. , -0.80924709, -2.60438829, 7.28309654], [ 0. , 0. , 0. , -2.33505011, 7.15303881], [ 0. , 0. , 0. , 0. , 0.56551031]])
samples = np.random.normal(size = (4,4))
samples
array([[-0.02572043, -0.50915883, 0.70107716, -0.24659031], [-0.36765102, -1.20889873, 0.077988 , 0.06286378], [ 0.66779473, 0.81195832, 1.00205546, 0.37107217], [ 2.49153879, 1.18781841, 1.13041669, 1.31902047]])
from random import normalvariateN = 1000000%timeit samples = [normalvariate(0,1) for _ in range(N)]
1 loop, best of 3: 1.58 s per loop
%timeit np.random.normal(size = N)
10 loops, best of 3: 43.2 ms per loop
import randompostion = 0walk = [postion]steps = 100for i in range(steps): step = 1 if random.randint(0,1) else -1 postion += step walk.append(postion)
import matplotlib.pyplot as plt plt.plot(walk)
[<matplotlib.lines.Line2D at 0x10ad0a90>]
nsteps = 1000draws = np.random.randint(0, 2, size = nsteps)print(draws)steps = np.where(draws > 0, 1, -1)print(steps)walk = steps.cumsum()
[0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0][-1 1 1 -1 1 -1 1 -1 1 1 1 -1 -1 1 1 1 -1 1 1 -1 1 1 -1 1 1 -1 1 1 -1 1 1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 -1 1 1 1 -1 1 1 -1 1 -1 1 1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 1 -1 -1 1 1 1 -1 1 1 -1 1 1 -1 -1 1 1 1 1 -1 1 1 1 -1 1 -1 -1 1 1 -1 1 1 1 -1 -1 -1 1 1 1 1 1 1 1 -1 -1 1 1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 1 1 1 -1 1 -1 1 1 1 1 -1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 1 -1 1 1 -1 1 1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 1 1 1 1 -1 1 -1 1 1 1 -1 1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 1 1 -1 1 1 -1 1 1 1 -1 1 1 -1 -1 1 -1 1 -1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 1 1 1 -1 -1 1 1 1 1 -1 1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 1 -1 1 -1 -1 1 -1 -1 -1 1 1 1 -1 1 -1 -1 -1 1 1 -1 1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 1 1 -1 1 -1 1 1 1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 -1 -1 1 -1 -1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 1 1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 1 1 1 1 -1 1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1 -1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 1 1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 1 1 1 1 1 -1 1 -1 1 1 1 1 1 -1 1 -1 1 1 -1 -1 1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 -1 1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 -1 -1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 -1 -1 -1 -1 1 1 -1 1 1 1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 1 1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 1 1 -1 1 1 -1 1 -1 1 1 1 1 -1 1 1 -1 1 -1 1 -1 1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 1 -1 1 -1 1 -1 1 1 1 1 1 1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 1 1 1 1 1 -1 1 1 -1 1 1 -1 -1 1 -1 1 1 -1 1 1 -1 1 -1 -1 1 1 1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 -1]
walk = steps.cumsum()print(walk)plt.plot(walk)
[ -1 0 1 0 1 0 1 0 1 2 3 2 1 2 3 4 3 4 5 4 5 6 5 6 7 6 7 8 7 8 9 10 11 10 9 10 11 10 9 10 9 8 7 8 9 10 9 10 11 10 11 10 11 12 11 12 11 12 11 10 11 12 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 2 1 2 1 2 3 4 5 4 3 4 5 6 5 6 7 6 7 8 7 6 7 8 9 10 9 10 11 12 11 12 11 10 11 12 11 12 13 14 13 12 11 12 13 14 15 16 17 18 17 16 17 18 19 18 17 18 17 18 17 16 15 14 13 14 15 14 13 12 13 14 15 16 15 14 13 12 11 10 9 10 11 12 11 12 13 14 13 14 13 14 15 16 17 16 15 16 17 16 17 16 15 14 15 14 13 14 15 14 13 14 13 12 11 10 9 10 11 12 13 12 13 14 13 14 15 14 15 16 17 18 17 16 15 14 13 12 11 12 13 14 15 14 15 14 13 12 13 14 13 12 11 10 9 8 9 10 9 8 9 8 9 8 9 8 7 6 7 8 9 8 7 8 7 8 7 6 7 8 7 6 5 6 7 8 9 8 9 8 9 10 11 10 11 10 11 10 11 10 9 8 7 8 7 8 9 8 9 8 9 8 9 8 7 6 5 4 3 2 1 0 1 0 -1 -2 -3 -4 -3 -2 -3 -4 -3 -4 -5 -4 -3 -4 -3 -2 -3 -2 -1 -2 -1 0 1 0 1 2 1 0 1 0 1 0 -1 -2 -1 -2 -1 -2 -1 -2 -1 0 -1 0 -1 0 1 2 3 2 1 2 3 4 5 4 5 4 5 6 5 4 5 4 5 6 5 6 5 4 3 4 3 2 3 2 1 2 3 2 1 2 1 0 1 2 3 2 3 2 1 2 1 0 -1 0 1 2 1 2 1 0 -1 0 1 0 1 2 1 0 1 0 -1 0 -1 -2 -3 -4 -3 -4 -3 -4 -3 -2 -1 -2 -1 -2 -1 0 1 2 1 2 3 2 3 2 1 2 1 2 3 2 3 2 3 4 5 6 7 8 7 6 5 4 3 2 3 2 1 2 1 0 1 2 1 2 1 2 3 2 1 0 -1 -2 -1 -2 -3 -2 -1 -2 -3 -4 -3 -4 -5 -4 -5 -4 -5 -6 -5 -4 -3 -2 -1 -2 -3 -2 -3 -2 -1 0 -1 -2 -3 -2 -3 -2 -3 -4 -5 -6 -5 -6 -7 -6 -7 -6 -7 -8 -7 -6 -5 -6 -7 -6 -5 -4 -3 -2 -3 -2 -1 -2 -3 -4 -5 -6 -5 -4 -5 -6 -5 -6 -7 -6 -7 -6 -7 -6 -5 -6 -5 -6 -7 -6 -5 -6 -5 -6 -5 -6 -7 -8 -9 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -16 -15 -14 -15 -16 -17 -16 -15 -16 -17 -16 -17 -16 -15 -16 -15 -16 -15 -14 -13 -14 -15 -16 -17 -18 -19 -20 -21 -20 -21 -20 -21 -20 -21 -22 -21 -20 -19 -18 -17 -16 -15 -16 -15 -16 -15 -16 -15 -14 -13 -14 -13 -12 -13 -14 -15 -16 -17 -18 -17 -18 -19 -18 -17 -18 -19 -20 -19 -18 -17 -18 -19 -20 -19 -20 -21 -22 -21 -22 -23 -24 -25 -24 -23 -22 -21 -20 -19 -18 -19 -18 -19 -18 -17 -16 -15 -14 -15 -14 -15 -14 -13 -14 -15 -14 -13 -12 -13 -14 -13 -14 -13 -14 -13 -14 -15 -14 -15 -16 -15 -14 -13 -14 -13 -12 -11 -10 -9 -10 -9 -10 -11 -12 -13 -12 -13 -12 -13 -12 -11 -12 -11 -12 -13 -12 -13 -14 -15 -14 -13 -12 -13 -12 -13 -14 -15 -14 -15 -16 -17 -18 -19 -18 -17 -18 -19 -18 -17 -16 -17 -18 -19 -20 -19 -18 -19 -18 -17 -16 -15 -16 -15 -14 -13 -14 -15 -16 -15 -16 -17 -16 -17 -16 -17 -18 -17 -18 -17 -18 -19 -20 -19 -20 -21 -22 -21 -22 -23 -22 -21 -22 -21 -22 -23 -24 -25 -26 -25 -26 -27 -26 -27 -28 -27 -26 -27 -28 -29 -30 -29 -28 -29 -30 -31 -30 -31 -30 -29 -30 -31 -32 -33 -32 -33 -34 -35 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -28 -27 -28 -29 -30 -31 -32 -31 -32 -33 -32 -31 -30 -31 -30 -29 -30 -29 -30 -29 -28 -27 -26 -27 -26 -25 -26 -25 -26 -25 -26 -25 -24 -23 -24 -23 -24 -25 -24 -25 -24 -23 -24 -23 -24 -23 -22 -23 -24 -23 -24 -25 -24 -23 -24 -23 -24 -23 -24 -25 -26 -25 -26 -25 -26 -25 -26 -25 -24 -23 -22 -21 -20 -19 -20 -19 -20 -21 -20 -21 -20 -21 -22 -21 -20 -19 -18 -17 -16 -15 -16 -15 -14 -15 -14 -13 -14 -15 -14 -15 -14 -13 -14 -13 -12 -13 -12 -13 -14 -13 -12 -11 -10 -11 -12 -11 -12 -13 -14 -15 -14 -15 -16 -17 -18 -19 -18 -17 -16 -17 -16 -15 -16 -17 -16 -15 -16 -17 -16 -17 -16 -15 -16 -17 -18 -19 -18 -19 -20 -19 -20 -21 -20 -21 -22 -21 -22 -23 -22 -21 -22 -23 -22 -23 -24][<matplotlib.lines.Line2D at 0x10c090b8>]
walk.min()
-36
walk.max()
19
(np.abs(walk) > 10).argmax()
32
nwalks = 5000nsteps =1000draws = np.random.randint(0, 2, size =(nwalks, nsteps))steps = np.where(draws > 0, 1, -1)walks = steps.cumsum(1)
walks
array([[ -1, 0, 1, ..., -62, -63, -62], [ 1, 0, 1, ..., 20, 21, 22], [ 1, 0, 1, ..., -12, -11, -12], ..., [ 1, 2, 3, ..., -34, -33, -34], [ -1, -2, -3, ..., 4, 3, 2], [ -1, -2, -1, ..., -10, -11, -10]], dtype=int32)
walks.max()
122
walk.min()
-36
hits30 = (np.abs(walks) > 30).any(1)hits30
array([ True, True, True, ..., True, False, False], dtype=bool)
hits30.sum()
3269
crossing_times = (np.abs(walks[hits30] >= 30).argmax(1))crossing_times.mean()
256.13979810339555
阅读全文
0 0
- 《利用python进行数据分析》ch04
- 《利用Python进行数据分析》学习笔记ch04(5)
- 利用Python进行数据分析--时间序列
- 利用Python 的 Pandas进行数据分析
- 《利用python 进行数据分析》要点记录
- 利用python进行数据分析笔记
- 利用Python进行数据分析笔记(一
- 利用python进行数据分析随笔小记
- 《利用Python 进行数据分析》 - 笔记(2)
- 《利用Python 进行数据分析》 - 笔记(3)
- 《利用Python 进行数据分析》 - 笔记(4)
- 利用python进行数据分析-NumPy基础
- 《利用Python 进行数据分析》 - 笔记(5)
- 利用python进行数据分析-pandas入门
- 利用Python进行数据分析环境部署
- 读《利用 Python 进行数据分析》pdf
- 开始学习《利用python进行数据分析》
- 利用Python 进行数据分析 ch02
- linux中service命令的原理
- IOS中UIimageView的内容模式
- [mongoDB]exception in initAndListen: 20 Attempted to create a lock file on a read-only directory:
- Windonws 与 Ubuntu 下Python3.6安装Scrapy的快捷方法
- Beyond Compare如何比较两个文件夹差异
- 《利用python进行数据分析》ch04
- Apache poi常用方法
- Codeforces 876A Trip For Meal 贪心
- VS2017 安装 R 组件后出现警告
- 自定义属性 来实现 ProgressBar 圆形进度条
- ubuntu16.04.3下安装tensorflow
- 【转载】梯度下降算法详解
- canny边缘检测算法为什么需要两个阈值?
- 【LeetCode】C# 98、Validate Binary Search Tree