2. numpy的使用

 

import numpy as np

numpy的基本操作

a = np.array([[1,2,3],[4,5,6]])
b = np.array([1,2,3,4])
c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
print(a.shape)
print(b.shape)
print(c.shape)

(2, 3)
(4,)
(2, 2, 3)

 

a.dtype

 

dtype('int64')

 

a.itemsize

 

8

 

a.size

 

6

 

c.ndim

 

3

 

生成数组

d = np.array([[1,2,3],[4,5,6]],dtype=np.float32)
d.dtype

 

dtype('float32')

 

e=np.zeros([3,4],dtype="float32")
e

 

array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]], dtype=float32)

 

e.dtype

 

dtype('float32')

 

e=np.zeros([3,4],dtype=np.float32)
e

 

array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]], dtype=float32)

 

f=np.ones([3,4],dtype=np.int32)
f

 

array([[1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1]], dtype=int32)

 

# 从现有数组生成
score = np.array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])

score

 

array([[80, 89, 86, 67, 79],
       [78, 97, 89, 67, 81],
       [90, 94, 78, 67, 74],
       [91, 91, 90, 67, 69],
       [76, 87, 75, 67, 86],
       [70, 79, 84, 67, 84],
       [94, 92, 93, 67, 64],
       [86, 85, 83, 67, 80]])

 

score1=np.array(score)
score2=np.asarray(score)
score3=np.copy(score)

score[0][0]=100

score

 

array([[100,  89,  86,  67,  79],
       [ 78,  97,  89,  67,  81],
       [ 90,  94,  78,  67,  74],
       [ 91,  91,  90,  67,  69],
       [ 76,  87,  75,  67,  86],
       [ 70,  79,  84,  67,  84],
       [ 94,  92,  93,  67,  64],
       [ 86,  85,  83,  67,  80]])

 

score2

 

array([[100,  89,  86,  67,  79],
       [ 78,  97,  89,  67,  81],
       [ 90,  94,  78,  67,  74],
       [ 91,  91,  90,  67,  69],
       [ 76,  87,  75,  67,  86],
       [ 70,  79,  84,  67,  84],
       [ 94,  92,  93,  67,  64],
       [ 86,  85,  83,  67,  80]])

 

# 生成固定范围的数组
np.linspace(0, 100, 10)

 

array([  0.        ,  11.11111111,  22.22222222,  33.33333333,
        44.44444444,  55.55555556,  66.66666667,  77.77777778,
        88.88888889, 100.        ])

 

np.arange(10, 50, 15)

 

array([10, 25, 40])

 

a=np.random.uniform(0,100,1000000)

import matplotlib.pyplot as plt
plt.figure(figsize=(20,8),dpi=80)
plt.hist(a)
plt.show()

<Figure size 1600x640 with 1 Axes>

 

b=np.random.normal(0,1,(100,100))
b

 

array([[-6.54070831e-01, -8.58237690e-01,  1.12840828e-03, ...,
        -5.69480307e-02,  3.55998992e-01, -4.75176936e-01],
       [ 6.76076814e-01,  1.47650320e+00,  4.61246907e-01, ...,
         2.76736091e+00,  2.13077009e-01, -3.92740201e-01],
       [ 6.14808294e-01, -1.56088314e-01,  8.86520985e-03, ...,
         1.47150511e+00,  4.02858641e-01,  2.24224565e+00],
       ...,
       [-1.26753533e+00, -1.46173745e-01, -1.42753958e+00, ...,
        -8.50436456e-02,  5.38332925e-01, -1.05123949e+00],
       [-7.50317584e-02, -4.60182497e-01,  2.16468102e-01, ...,
        -1.38952087e-01, -4.67473834e-01,  1.08061128e+00],
       [-2.42025812e-01, -9.83338435e-02,  1.08822672e-01, ...,
        -1.26860857e+00,  3.39079875e-01,  2.23547985e-01]])

 

plt.figure(figsize=(20,8),dpi=80)
plt.hist(b,100)
plt.show()

 

 

数组的基本操作

# 创建符合正态分布的8只股票10天的涨跌幅数据
stock_change = np.random.normal(0, 1, (8, 10))
stock_change

 

array([[-0.5889853 , -0.93535336, -0.0675299 , -0.72403031, -0.86873673,
         0.2366924 ,  0.91934989,  0.95733701,  0.7036584 , -0.25490962],
       [-0.99235101,  0.70940651, -0.66934701, -0.33760595,  1.75578837,
        -0.17527665,  1.127985  ,  1.16480656,  0.60324222,  2.220063  ],
       [-1.3326412 , -1.01831572, -1.09038797,  0.35145548, -1.52407572,
         1.24380911,  0.53576183, -0.87476354,  0.94061172, -1.54695238],
       [-0.6141568 ,  0.34004292,  0.53421929,  0.93273841, -2.39181704,
         0.73553393, -0.37974303,  0.12472411,  0.31243104, -0.09388522],
       [ 0.63699391,  0.54513968, -1.45114066,  0.12302606,  0.8179262 ,
        -0.98861413, -1.37164055,  0.04710424,  0.35452202, -1.77008598],
       [ 0.05821616, -0.10157081, -0.0177392 , -0.80556969, -0.644111  ,
         1.62028286,  0.12565102,  0.83290996,  1.06604483,  0.88367563],
       [ 1.82724499, -0.625139  , -1.00688955, -1.31627874, -0.81109591,
         0.96967537,  0.75956849, -0.80162364,  0.44827989,  2.05341272],
       [-1.7788185 ,  0.79750866, -0.29012385,  0.60888444, -1.05643106,
         0.17126915, -2.24288296,  0.30024122, -0.44027555,  2.33346992]])

 

stock_change[0, 0:3]

 

array([-0.5889853 , -0.93535336, -0.0675299 ])

 

stock_change.reshape((10,8))

 

array([[-0.5889853 , -0.93535336, -0.0675299 , -0.72403031, -0.86873673,
         0.2366924 ,  0.91934989,  0.95733701],
       [ 0.7036584 , -0.25490962, -0.99235101,  0.70940651, -0.66934701,
        -0.33760595,  1.75578837, -0.17527665],
       [ 1.127985  ,  1.16480656,  0.60324222,  2.220063  , -1.3326412 ,
        -1.01831572, -1.09038797,  0.35145548],
       [-1.52407572,  1.24380911,  0.53576183, -0.87476354,  0.94061172,
        -1.54695238, -0.6141568 ,  0.34004292],
       [ 0.53421929,  0.93273841, -2.39181704,  0.73553393, -0.37974303,
         0.12472411,  0.31243104, -0.09388522],
       [ 0.63699391,  0.54513968, -1.45114066,  0.12302606,  0.8179262 ,
        -0.98861413, -1.37164055,  0.04710424],
       [ 0.35452202, -1.77008598,  0.05821616, -0.10157081, -0.0177392 ,
        -0.80556969, -0.644111  ,  1.62028286],
       [ 0.12565102,  0.83290996,  1.06604483,  0.88367563,  1.82724499,
        -0.625139  , -1.00688955, -1.31627874],
       [-0.81109591,  0.96967537,  0.75956849, -0.80162364,  0.44827989,
         2.05341272, -1.7788185 ,  0.79750866],
       [-0.29012385,  0.60888444, -1.05643106,  0.17126915, -2.24288296,
         0.30024122, -0.44027555,  2.33346992]])

 

stock_change.T

 

array([[-0.5889853 , -0.99235101, -1.3326412 , -0.6141568 ,  0.63699391,
         0.05821616,  1.82724499, -1.7788185 ],
       [-0.93535336,  0.70940651, -1.01831572,  0.34004292,  0.54513968,
        -0.10157081, -0.625139  ,  0.79750866],
       [-0.0675299 , -0.66934701, -1.09038797,  0.53421929, -1.45114066,
        -0.0177392 , -1.00688955, -0.29012385],
       [-0.72403031, -0.33760595,  0.35145548,  0.93273841,  0.12302606,
        -0.80556969, -1.31627874,  0.60888444],
       [-0.86873673,  1.75578837, -1.52407572, -2.39181704,  0.8179262 ,
        -0.644111  , -0.81109591, -1.05643106],
       [ 0.2366924 , -0.17527665,  1.24380911,  0.73553393, -0.98861413,
         1.62028286,  0.96967537,  0.17126915],
       [ 0.91934989,  1.127985  ,  0.53576183, -0.37974303, -1.37164055,
         0.12565102,  0.75956849, -2.24288296],
       [ 0.95733701,  1.16480656, -0.87476354,  0.12472411,  0.04710424,
         0.83290996, -0.80162364,  0.30024122],
       [ 0.7036584 ,  0.60324222,  0.94061172,  0.31243104,  0.35452202,
         1.06604483,  0.44827989, -0.44027555],
       [-0.25490962,  2.220063  , -1.54695238, -0.09388522, -1.77008598,
         0.88367563,  2.05341272,  2.33346992]])

 

stock_change.dtype

 

dtype('float64')

 

stock_change.astype(np.float32)

 

array([[-0.5889853 , -0.93535334, -0.0675299 , -0.7240303 , -0.86873674,
         0.2366924 ,  0.9193499 ,  0.957337  ,  0.7036584 , -0.25490963],
       [-0.992351  ,  0.7094065 , -0.669347  , -0.33760595,  1.7557883 ,
        -0.17527665,  1.127985  ,  1.1648066 ,  0.6032422 ,  2.220063  ],
       [-1.3326412 , -1.0183157 , -1.090388  ,  0.35145548, -1.5240757 ,
         1.2438091 ,  0.53576183, -0.87476355,  0.9406117 , -1.5469524 ],
       [-0.6141568 ,  0.34004292,  0.53421926,  0.9327384 , -2.391817  ,
         0.73553395, -0.37974304,  0.12472411,  0.31243104, -0.09388521],
       [ 0.6369939 ,  0.5451397 , -1.4511406 ,  0.12302607,  0.8179262 ,
        -0.98861414, -1.3716406 ,  0.04710424,  0.35452202, -1.7700859 ],
       [ 0.05821616, -0.10157081, -0.0177392 , -0.8055697 , -0.644111  ,
         1.6202829 ,  0.12565102,  0.83290994,  1.0660448 ,  0.88367563],
       [ 1.827245  , -0.625139  , -1.0068896 , -1.3162787 , -0.8110959 ,
         0.96967536,  0.7595685 , -0.80162364,  0.4482799 ,  2.0534127 ],
       [-1.7788185 ,  0.79750866, -0.29012385,  0.60888445, -1.056431  ,
         0.17126915, -2.242883  ,  0.3002412 , -0.44027555,  2.3334699 ]],
      dtype=float32)

 

数组的运算

# 逻辑运算
stock_change
stock_change1=np.copy(stock_change)

stock_change>0.5 # 逻辑判断, 如果涨跌幅大于0.5就标记为True 否则为False

 

array([[False, False, False, False, False, False,  True,  True,  True,
        False],
       [False,  True, False, False,  True, False,  True,  True,  True,
         True],
       [False, False, False, False, False,  True,  True, False,  True,
        False],
       [False, False,  True,  True, False,  True, False, False, False,
        False],
       [ True,  True, False, False,  True, False, False, False, False,
        False],
       [False, False, False, False, False,  True, False,  True,  True,
         True],
       [ True, False, False, False, False,  True,  True, False, False,
         True],
       [False,  True, False,  True, False, False, False, False, False,
         True]])

 

stock_change1[stock_change1>0.5]=1  # 如果涨跌幅大于0.5就把值改为1

stock_change1

 

array([[-0.5889853 , -0.93535336, -0.0675299 , -0.72403031, -0.86873673,
         0.2366924 ,  1.        ,  1.        ,  1.        , -0.25490962],
       [-0.99235101,  1.        , -0.66934701, -0.33760595,  1.        ,
        -0.17527665,  1.        ,  1.        ,  1.        ,  1.        ],
       [-1.3326412 , -1.01831572, -1.09038797,  0.35145548, -1.52407572,
         1.        ,  1.        , -0.87476354,  1.        , -1.54695238],
       [-0.6141568 ,  0.34004292,  1.        ,  1.        , -2.39181704,
         1.        , -0.37974303,  0.12472411,  0.31243104, -0.09388522],
       [ 1.        ,  1.        , -1.45114066,  0.12302606,  1.        ,
        -0.98861413, -1.37164055,  0.04710424,  0.35452202, -1.77008598],
       [ 0.05821616, -0.10157081, -0.0177392 , -0.80556969, -0.644111  ,
         1.        ,  0.12565102,  1.        ,  1.        ,  1.        ],
       [ 1.        , -0.625139  , -1.00688955, -1.31627874, -0.81109591,
         1.        ,  1.        , -0.80162364,  0.44827989,  1.        ],
       [-1.7788185 ,  1.        , -0.29012385,  1.        , -1.05643106,
         0.17126915, -2.24288296,  0.30024122, -0.44027555,  1.        ]])

 

stock_change

 

array([[-0.5889853 , -0.93535336, -0.0675299 , -0.72403031, -0.86873673,
         0.2366924 ,  0.91934989,  0.95733701,  0.7036584 , -0.25490962],
       [-0.99235101,  0.70940651, -0.66934701, -0.33760595,  1.75578837,
        -0.17527665,  1.127985  ,  1.16480656,  0.60324222,  2.220063  ],
       [-1.3326412 , -1.01831572, -1.09038797,  0.35145548, -1.52407572,
         1.24380911,  0.53576183, -0.87476354,  0.94061172, -1.54695238],
       [-0.6141568 ,  0.34004292,  0.53421929,  0.93273841, -2.39181704,
         0.73553393, -0.37974303,  0.12472411,  0.31243104, -0.09388522],
       [ 0.63699391,  0.54513968, -1.45114066,  0.12302606,  0.8179262 ,
        -0.98861413, -1.37164055,  0.04710424,  0.35452202, -1.77008598],
       [ 0.05821616, -0.10157081, -0.0177392 , -0.80556969, -0.644111  ,
         1.62028286,  0.12565102,  0.83290996,  1.06604483,  0.88367563],
       [ 1.82724499, -0.625139  , -1.00688955, -1.31627874, -0.81109591,
         0.96967537,  0.75956849, -0.80162364,  0.44827989,  2.05341272],
       [-1.7788185 ,  0.79750866, -0.29012385,  0.60888444, -1.05643106,
         0.17126915, -2.24288296,  0.30024122, -0.44027555,  2.33346992]])

 

np.all(stock_change[0:2,0:5]>0)

 

False

 

np.any(stock_change[0:2,0:5]>0)

 

True

 

temp=stock_change[0:4,0:4]
np.where(temp>0,1,0)

 

array([[0, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 0, 1],
       [0, 1, 1, 1]])

 

np.where(np.logical_and(temp > 0.5, temp < 1), 1, 0)

 

array([[0, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 1, 1]])

 

np.where(np.logical_or(temp > 0.5, temp < -0.5), 1, 0)

 

array([[1, 1, 0, 1],
       [1, 1, 1, 0],
       [1, 1, 1, 0],
       [1, 0, 1, 1]])

 

temp

 

array([[-0.5889853 , -0.93535336, -0.0675299 , -0.72403031],
       [-0.99235101,  0.70940651, -0.66934701, -0.33760595],
       [-1.3326412 , -1.01831572, -1.09038797,  0.35145548],
       [-0.6141568 ,  0.34004292,  0.53421929,  0.93273841]])

 

np.max(temp)

 

0.9327384109856901

 

np.max(temp,axis=1)

 

array([-0.0675299 ,  0.70940651,  0.35145548,  0.93273841])

 

np.max(temp, axis=0)

 

array([-0.5889853 ,  0.70940651,  0.53421929,  0.93273841])

 

np.std(temp,axis=1)

 

array([0.320048  , 0.63915226, 0.65926327, 0.56843862])

 

np.argmax(temp,axis=1)

 

array([2, 1, 3, 3])

 

数组间的运算

arr=np.array([[1,2,3,4],[5,6,7,8]])

arr

 

array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

 

arr+10

 

array([[11, 12, 13, 14],
       [15, 16, 17, 18]])

 

arr*10

 

array([[10, 20, 30, 40],
       [50, 60, 70, 80]])

 

arr/10

 

array([[0.1, 0.2, 0.3, 0.4],
       [0.5, 0.6, 0.7, 0.8]])

 

### 矩阵的计算
a = np.array([[80, 86],
[82, 80],
[85, 78],
[90, 90],
[86, 82],
[82, 90],
[78, 80],
[92, 94]])
b = np.array([[0.7], [0.3]])

a_mat=np.mat(a)

a_mat

 

matrix([[80, 86],
        [82, 80],
        [85, 78],
        [90, 90],
        [86, 82],
        [82, 90],
        [78, 80],
        [92, 94]])

 

np.matmul(a,b)

 

array([[81.8],
       [81.4],
       [82.9],
       [90. ],
       [84.8],
       [84.4],
       [78.6],
       [92.6]])

 

np.dot(a,b)

 

array([[81.8],
       [81.4],
       [82.9],
       [90. ],
       [84.8],
       [84.4],
       [78.6],
       [92.6]])

 

a@b

 

array([[81.8],
       [81.4],
       [82.9],
       [90. ],
       [84.8],
       [84.4],
       [78.6],
       [92.6]])

 

b_mat=np.mat(b)

a_mat*b_mat

 

matrix([[81.8],
        [81.4],
        [82.9],
        [90. ],
        [84.8],
        [84.4],
        [78.6],
        [92.6]])

 

 

展开阅读全文
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值