### numpy
1.NumPy的科学计算库
array列表属性
np.mean 求均值
np.median 求中位数
np.std 求标准差
np.prod 计算数组所有元素的乘积
(.prod():整体乘积,结果是一个数。
.cumprod():累计乘积,结果是一个序列。)
在 np.mean(stock_prices, axis=1) 中,axis=1 表示对数组的每一行进行求均值。
axis=0:对每一列求均值。
axis=1:对每一行求均值。
你的代码会输出每只股票(每一行)的均价。
```
arr = np.array([1, 2, 3, 4])
result = np.prod(arr) # 或 np.prod(arr)
print(result) # 输出 24
arr2 = np.array([[1, 2], [3, 4]])
print(np.prod(arr2, axis=0)) # 输出 [3 8],每列相乘
print(np.prod(arr2, axis=1)) # 输出 [2 12],每行相
```
EX:array02
2.NumPy的随机数生成
1.随机生成0-1的数字
2.数字呈正态分布
np.random.seed(0)(设置随机数生成器的种子,保证每次运行代码时生成的随机数序列都一样,方便结果复现和调试。 0 是随机数种子的值,可以是任意整数。不同的种子值会生成不同的随机数序列。只要种子值一样,每次生成的随机数序列就一样)
random_matrix = np.random.rand(3, 4)
Random Matrix:
[[0.5488135 0.71518937 0.60276338 0.54488318]
[0.4236548 0.64589411 0.43758721 0.891773 ]
[0.96366276 0.38344152 0.79172504 0.52889492]]
3.NumPy的基本数学运算
可以相加相乘相乘+ / >
### Matplotlib可视化库
import numpy as np
from matplotlib import pyplot as plt
stock_prices = np.array([10.5, 11.0, 10.8, 11.2, 11.5,
10.7, 10.9, 11.1, 11.3, 11.4])
x=np.arange(0,len(stock_prices))
#arange(start, stop):从 start 到 stop(不包括 stop),步长为 1。
#在你的代码里,假如 stock_prices 长度是 10,np.arange(0, 10) 就会生成 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。
y=stock_prices
plt.title("Stock Prices Over Time")
plt.xlabel("Time")
plt.ylabel("Price")
plt.plot(x,y)
plt.show()
### Pandas
1.Series与DataFramePandas里面有两个重要的概念,Series和DataFrame。Series翻译成中文就是“系列”;DataFrame则直译为“数据框”。
[a1,a2,a3,a4]其中a1,a2,a3,a4是4阶列向量。Series就相当于a1或a2或a3或a4,就是其中一个列向量。DataFram就相当于整体矩阵。
2.DataFrame中没有字符串,所有字符串类型被储存为对象类型,也就是object
3.每一列的数据就是一个序列(Series),整个表格就是 DataFrame。
EX:pandaa01.py
3.Pandas的输入与输出
pd.read_csv()=读取csv
DataFrame.dtypes=查看每列数据类型
DataFrame[columns].astype=改变对应列的数据类型(colums每列的第一行名字)
DataFrame.to_csv("文件名",index=False)=保存数据index=true就是前面加一列[0,1,2.....]
EX:pandaa02.py
4.DataFrame的数据选取
DataFrame.head() 不填数据默认显示前5行数据
DataFrame.tail() 不填数据默认显示后5行数据
DataFrame[["columns01","columns03","columns05"]]默认选取第一列,第三列和第五列的数据
DataFrame[DataFrame["columns01"]=="aa"]默认选取第一列中满足aa条件的行
DataFrame.iloc[4:8,2:-1]获取第5到第9行(不包括第9行)的同时,也获取了第3列到最后一列(不包括最后一列)的数据
.dt 是 pandas 提供的日期时间属性访问器,用于从 datetime 类型的 Series 中提取日期、时间、年、月、日等信息。
DataFrame['columns01'].dt.time/year/date/mouth
EX:pandaa03.py
5.Pandas的排序
DataFrame.sort_values(by=["columns01","columns03"],ascending=True,inplace=False)
先按照columns01列排列,再按照columns03排列,
其中scending是升序和降序,默认从小到大flase,
inplace=False(默认),则会返回一个排序后的新 DataFrame,原数据不变。
EX:pandaa04.py
6.统计描述与分组
DataFrame.describe()汇总所有数值类型的列,包括 int、float、double(在 pandas 里主要是 int 和 float)。
这些类型的列会显示计数、均值、标准差、最小值、最大值、分位数等统计信息。
DataFrame[DataFrame["columns01"]=="aa"].describe() 用筛选语句和统计信息合并使用,可以具体表示具体某些行或列的统计信息
分组统计
DataFrame.groupby('columns01')['columns02'].apply(np.mean)
按'columns01'列分组,并计算'columns02'列的平均值
EX:pandaa05.py
7. Pandas的数据可视化
.plot(底层依然是调用matplotlib,是panadas的调用matplotlib方法,可以直接用于 Series 或 DataFrame)
(plt.show():负责显示图像窗口,是直接matplotlib的方法)
.hist():绘制直方图(bins指定柱子的数量)
.boxplot():绘制箱线图
.bar():绘制柱状图
.pie():绘制饼图
.scatter():绘制散点图(DataFrame 才有)
EX:pandaa06.py
8. 多个DataFrame处理
.merge("主表格",'需要合并的表格',on='哪一列',how='如何合并') how中有left,right,inner,outer四种合并方式