python股票分析挖掘预测利器Numpy,Pandas,Matplotlib库知识点(1)

发布时间:2023年12月26日

本人股市多年的老韭菜了,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包,

其中数据分析中常见的3大利器---Numpy,Pandas,Matplotlib库。

俗话说的好,工欲善其事,必先利其器,我们要做好项目,必先打好基础,那我们一起学习一下这三个数据分析库,

(一)Numpy库基础

? ?NumPy是Python的一种开源数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是Pandas库的基础,主要为以后学习Pandas库做铺垫。

同样Numpy应用广泛,

  • 机器学习模型:主要对矩阵进行各种数值计算。
  • 图像处理和计算机图形学:
  • 数学任务:积分,微分,内插,外推。

?(1)Numpy特点

? ??NumPy库的主要特点是引入了数组的概念,数组其实跟列表有点类似,所以我们可以借助列表来初步认识数组的基本概念
?NumPy数组与列表的区别**

c = a * 2
d = b * 2
print(c)
print(d)

e = [[1,2], [3,4], [5,6]]
f = np.array([[1,2], [3,4], [5,6]])
print(e)
print(f)

# **?创建数组的几种方式**
?

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

x = np.arange(5)
y = np.arange(5,10)
z = np.arange(5, 10, 0.5)
print(x)
print(y)
print(z)

(2)文件IO操作

?文件IO操作非常重要,特别股票软件需要对下载的数据分析读取等等。

保存数据
x = np.random.randn(5)
y = np.arange(0,10,1)
# save?法可以存?个ndarray
np.save("x_arr",x)
# 如果要存多个数组,要是?savez?法,保存时以key-value形式保存,key任意(xarr、yarr)
np.savez("some_array.npz",xarr = x,yarr=y)
读写csv、txt?件
arr = np.random.randint(0,10,size = (3,4))
#储存数组到txt?件
np.savetxt("arr.csv",arr,delimiter=',') # ?件后缀是txt也是?样的
#读取txt?件,delimiter为分隔符,dtype为数据类型
np.loadtxt("arr.csv",delimiter=',',dtype=np.int32)

?(3)通用函数

abs、sqrt、square、exp、log、sin、cos、tan,maxinmum、minimum、all、any、inner、clip、round、trace、ceil、floo

数学和统计函数

min、max、mean、median、sum、std、var、cumsum、cumprod、argmin、argmax、argwhere、cov、corrcoef

np.abs(a)    # 求绝对值
np.sqrt(b)   # 开平方

np.square(b) # 平方
np.exp(3)    # 自然底数e的多少次幂
np.log(20.085536) # 自然底数e对数求解
np.sin(np.pi/2)   # 度sin正弦值
np.cos(0)         # 余弦值
np.tan(np.pi/6)   # 正切,30度正切值
# 给两个数组,从中选取大的,或者选取小的
np.maximum(a,c)   # 从a和c中选取最大的值,二者取其一,最后形状不变
np.minimum(a,c)   # 选取最小的值

?

np.mean(a)
np.median(a)
np.std(a)
np.var(a)

np.corrcoef(a,a)
# 相关性系数,0-1(正相关)  -1-0 (负相关)
# 0 表示,没有线性关系


(4)线性代数

? ? 向量计算
a = np.arange(8)
b = np.arange(8)
a * b  # 对应元素相乘, 保持原来的形状
? ?矩阵计算?
a = np.arange(1,5).reshape(2 ,2)
a.dot(a)

(5)索引、切片和迭代

?? ? ?可迭代对象

??可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过 iter( )方法或 getitem( )方法访问

from collections import Iterable

print(isinstance(range(100),Iterable))
print(isinstance(list(range(100)), Iterable))
isinstance('Say YOLO Again.', Iterable)

??索引与切片

numpy中数组切?是原始数组的视图,这意味着数据不会被复制,视图上任何数据的修改都会反映到原数组上。
start: 切片开始的位置,默认0

end: 切片结束的位置,默认结尾

step:步长,默认为1, 可以为负数

# 正序切片
a = np.arange(20)
display(a)

print(a[:])    # 参数默认
print(a[1:3])  # [start, end)
print(a[::3])  # 三个取数
# 逆序切片
print(a[-9:-3])    # -1代表最后一个元素的index
print(a[-2:-8:-2])  
print(a[::-1])  # 每隔一个逆序取数
print(a[::-2])  # 每隔两个逆序取数

上述只是Numpy库常见的知识点。

文章来源:https://blog.csdn.net/zhuweilong123/article/details/135200360
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。