1:逻辑运算
import numpy as np
# 重新生成8只股票10个交易日的涨跌幅数据
a = np.random.normal(0,1,(8,10))
a = a[0:5,0:5]
a>0.5
array([[False, True, False, True, False],
[ True, False, False, True, False],
[False, False, False, False, False],
[ True, False, False, False, False],
[False, False, False, False, True]])
# BOOL赋值, 将满足条件的设置为指定的值-布尔索引
a[a>0.5] = 1
a
array([[ 0.42239475, 1. , -0.96660481, 1. , -2.01321414],
[ 1. , -0.25925804, -0.98642109, 1. , -0.0340934 ],
[-1.31676248, -1.18798167, -0.06931818, 0.33404852, -0.5186317 ],
[ 1. , -0.93588204, -0.75465725, -0.46047116, -0.26881438],
[-0.6638155 , -0.92471488, -0.81871078, 0.05119344, 1. ]])
2:通用判断函数
# 判断a[0:2, 0:5]是否全时上涨
np.all(a[0:2,0:5]>0)
False
# 判断a[0:2, 0:5]是否全时上涨
np.all(a[0:2,0:5]>0)
True
3: np.where (三元运算符)
# 判断前四个股票前四天的涨跌幅 大于0的置为1,否则为0
np.where(a[0:4,0:4]>0,1,0)
array([[0, 1, 1, 1, 1],
[1, 0, 1, 1, 0],
[1, 1, 0, 0, 1],
[1, 1, 1, 0, 0],
[1, 1, 1, 0, 1]])
# 判断前四个股票前四天的涨跌幅 大于0.5并且小于1的,换为1,否则为0
# 判断前四个股票前四天的涨跌幅 大于0.5或者小于-0.5的,换为1,否则为0
np.where(np.logical_and(temp > 0.5, temp < 1), 1, 0)
np.where(np.logical_or(temp > 0.5, temp < -0.5), 1, 0)
array([[0, 1, 1, 1, 1],
[1, 0, 1, 1, 0],
[1, 1, 0, 0, 1],
[1, 1, 1, 0, 0],
[1, 1, 1, 0, 1]])
4:统计运算
arr = np.array([5,2,3,6,7,1])
arr.sort()
#数组的升序排序
print(arr)
[1 2 3 5 6 7]
arr2 = np.array([[8,3,1,2],[9,3,1,6]])
#纵向
arr2.sort(axis=0)
print(arr2)
[[8 3 1 2]
[9 3 1 6]]
#横向
arr2.sort(axis=1)
print(arr2)
[[1 2 3 8]
[1 3 6 9]]
#返回培训后的索引
print(arr2.argsort())
print(arr2.argsort())
[[0 1 2 3]
[0 1 2 3]]
[[0 1 2 3]
[0 1 2 3]]
#去重
name = np.array(['小明','小红','小强','小红'])
print(np.unique(name))
['小强' '小明' '小红']
#复重 tile 对数组进行复重
print(np.tile(arr2,2))#把数组2 重复两次
#repeat 对元素进行复重
print(arr2.repeat(2,axis=0))
print(arr2.repeat(2,axis=1))
[[1 2 3 8 1 2 3 8]
[1 3 6 9 1 3 6 9]]
[[1 2 3 8]
[1 2 3 8]
[1 3 6 9]
[1 3 6 9]]
[[1 1 2 2 3 3 8 8]
[1 1 3 3 6 6 9 9]]
#以下函数用法一致
#求和
print(np.sum(arr2))
print(np.sum(arr2,axis=0))
print(np.sum(arr2,axis=1))
#均值
np.mean()
#保准差
np.std()
#方差
np.var()
#最下值
np.min()
#最大值
np.max()
#最小值索引
np.argmin()
#最大值索引
np.argmax()
#累计积
np.cumprod()
#累计和
np.cumsum()