0%

机器学习实践Numpy【2】np运算

复习了Python的基础语法,开始使用Numpy进行数据操作,同时使用JuPyter notebook 实践、记录。

1
import numpy as np

一、逻辑运算

1.1 基本判断

1
2
1. 大于、小于可以直接进行判断
2. 赋值:根据1的删选可以直接赋值 > stock_front[stock_front > 0.5] = 2 # 筛选>0.5的值,设置成2
1
2
stock_change = np.random.normal(0,1,(8,10))
stock_change
array([[-0.75254896,  0.13800347, -1.82692041,  0.67962715, -0.95599639,
        -0.01967562, -0.02826683, -1.19649466, -0.90110178, -1.77988564],
       [ 0.10673182, -0.55881195, -0.14170679, -0.89750724, -0.46186144,
        -0.29916581, -1.2683926 , -0.47452052,  2.03079179, -0.61752357],
       [ 0.45919586,  0.22145301,  0.52497513, -0.60608082,  0.57323945,
        -0.1365155 , -0.71665469,  0.09672215, -1.56701887,  1.77477174],
       [ 0.99457294,  1.97057607, -1.40286495,  1.3425013 ,  2.00707248,
        -0.90091719, -1.14843654, -1.14711919, -0.16398829, -0.59108646],
       [ 1.26721256, -1.0386193 , -1.61032871, -0.81512405,  0.60494824,
         1.69766176,  1.71788956,  1.47036844,  1.3739853 ,  0.87082525],
       [-0.41096473,  2.96331414,  1.46354672, -0.94421902, -0.05690433,
        -0.97004494, -1.59407176, -1.52980795, -0.4887531 , -0.51847338],
       [-0.25098181, -0.85611159,  1.89772287, -0.57752288,  0.39839749,
         1.06381376, -0.03351005,  1.58241277, -0.93007033,  0.62067707],
       [ 0.80110324, -0.095168  , -2.26290159, -0.81397822, -0.71994656,
        -0.68902653,  0.60960571,  0.47935453,  0.57727384, -1.34628842]])
1
2
stock_front = stock_change[0:5,0:5]
stock_front
array([[-0.75254896,  0.13800347, -1.82692041,  0.67962715, -0.95599639],
       [ 0.10673182, -0.55881195, -0.14170679, -0.89750724, -0.46186144],
       [ 0.45919586,  0.22145301,  0.52497513, -0.60608082,  0.57323945],
       [ 0.99457294,  1.97057607, -1.40286495,  1.3425013 ,  2.00707248],
       [ 1.26721256, -1.0386193 , -1.61032871, -0.81512405,  0.60494824]])
1
stock_front > 0.5  # 判断
array([[False, False, False,  True, False],
       [False, False, False, False, False],
       [False, False,  True, False,  True],
       [ True,  True, False,  True,  True],
       [ True, False, False, False,  True]])
1
2
stock_front[stock_front > 0.5] = 2 # 筛选>0.5的值,设置成2
stock_front
array([[-0.75254896,  0.13800347, -1.82692041,  2.        , -0.95599639],
       [ 0.10673182, -0.55881195, -0.14170679, -0.89750724, -0.46186144],
       [ 0.45919586,  0.22145301,  2.        , -0.60608082,  2.        ],
       [ 2.        ,  2.        , -1.40286495,  2.        ,  2.        ],
       [ 2.        , -1.0386193 , -1.61032871, -0.81512405,  2.        ]])

1.2 通用判断函数

1
2
1. np.all()  #all 所有都满足要求,True
2. np.any() #any 只要有一个满足要求,True
1
np.all(stock_front<=2)  # all 所有都满足要求,True 否则 False
True
1
np.any(stock_front<=0.2) # any 只要有一个满足要求,True
True

1.3 三元运算符

1
2
1. np.where(condition, 值1, 值1) # condition为true,值1,否则 值2
2. np.where(np.logical_and(stock_front>0,stock_front<1), 1, 0)
1
np.where(stock_front>0, 1, 0)
array([[0, 1, 0, 1, 0],
       [1, 0, 0, 0, 0],
       [1, 1, 1, 0, 1],
       [1, 1, 0, 1, 1],
       [1, 0, 0, 0, 1]])
1
np.where(np.logical_and(stock_front>0,stock_front<1), 1, 0)
array([[0, 1, 0, 0, 0],
       [1, 0, 0, 0, 0],
       [1, 1, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])

二、 统计运算

2.1 统计指标

1
2
3
4
5
6
7
8
min()
max()
median()
mean()
std() # 标准差
var() # 方差
argmax() # 最大值的坐标
argmin() # 最小值的坐标
1
stock_front.max()
2.0
1
stock_front.max(axis=1) # 0是列 1是行
array([2.        , 0.10673182, 2.        , 2.        , 2.        ])
1
stock_front.argmax() # 最大值的坐标
3
觉得不错?