python数据分析第二天

numpy的应用

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
%config InlineBackend.figure_format = 'svg'
# 前面导入并配置


# 通过array函数将list转换成ndarray
array1 = np.array([1, 2, 3, 4, 5], dtype='i4')
array1

# 元素个数
array1.size

# 维度
array1.ndim

# 形状
array1.shape

# 每个元素占用的内存空间(字节)
array1.itemsize

# 元素的数据类型
array1.dtype

# 整个数组占用的内存空间(字节)
array1.nbytes

# 通过arange函数指定取值范围创建ndarray
array2 = np.arange(1, 100, 2)
array2

# 通过linspace构造等差数列创建ndarray
array3 = np.linspace(-5, 5, 101)
array3

# 通过随机的方式创建ndarray对象
array4 = np.random.randint(60, 101, 15)
array4

# 生成十个0到1的小数的数组
array5 = np.random.random(10)
array5

# 创建二维数组
array6 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array6

array6.ndim  # 2 

# 用随机的方式创建二维数组
array7 = np.random.randint(60, 101, (5, 3))
array7

# 创建元素全为零的二维数组
array8 = np.zeros((4, 5), dtype='i4')
array8

# 通过full直接创建n行n列的以M为元素的二维数组
np.full((10, 10), 3)

# 创建单位矩阵
array9 = np.eye(10)
array9

# 将一维数组调形成二维数组
array10 = array4.reshape((5, 3))
array10

# 将数组扁平化处理(变成一维数组)
array11 = array10.flatten()
array11

# ndarray对象的tolist方法可以将数组变回成list
type(array11.tolist())

# 数组的切片
# 花式索引(fancy index)
array11[[1, 3, 9, -1, -1, 0, 0, 0]]

# 数组的关系运算会产生布尔数组
array11 >= 80
## 结果:array([False,  True, False,  True,  True,  True, False, False, False,True,  True, False,  True,  True,  True])

array11 % 2 != 0


# 布尔索引 数据筛选
array11[array11 >= 80]

# & 相当于Python中的and,但是作用于两个数组而不是两个布尔值
array11[(array11 % 2 != 0) & (array11 >= 80)]

# | 相当于Python中的or,但是作用于两个数组而不是两个布尔值
array11[(array11 % 2 != 0) | (array11 >= 80)]

# 切片操作
array11[3:8]

# 二维数组的花式索引
array6[[0, 1, 1, 2], [2, 0, 2, 1]]

array14 = np.random.randint(20, 51, 10)
array14

# 下四分位数
q1 = np.quantile(array14, 0.25)
# 中位数 - 百分之五十分位数
q2 = np.quantile(array14, 0.5)
# 上四分位数
q3 = np.quantile(array14, 0.75)
print(q1, q2, q3)

# 四分位距离
iqr = q3 - q1

# 将数组对象以pickle协议进行序列化(把对象变成了bytes最后写到文件中)
# 存档
array14.dump('aaa')

# 读档
array16 = np.load('aaa', allow_pickle=True)
array16

# 获取非零元素的索引
array17 = np.array([0, 1, 0, 2, 0, 0, 0, 3, 0])
array17[array17.nonzero()]

# 舍入
array18 = np.random.random(10) * 10
array18.round(2)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用和引用,Python作业中的股票分析可以包括两个问题。第一个问题是,如果从2010年1月1日开始,每月第一个交易日买入1%手股票,每年最后一个交易日卖出所有股票,到今天为止,收益如何?解决这个问题的具体步骤如下: 1. 首先,将时间控制在2010年至今,并获取相关数据。 2. 根据每个月的第一个交易日找出对应的行数据,获取开盘价作为股票的单价。 3. 计算买入股票花费的总金额,即每月第一个交易日的开盘价之和乘以100。 4. 找出每年最后一个交易日的数据,但排除2021年的数据。 5. 计算卖出股票的金额,即每年最后一个交易日的开盘价之和乘以1200。 6. 估算最后手中剩余股票的价值,使用最后一天的收盘价乘以剩余股票的数量(即400乘以剩余股票数)。 7. 计算总收益,即卖出股票的金额减去买入股票的金额。 第二个问题是,如果从2010年1月1日开始,初始资金为100000元,金叉尽量买入,死叉全部卖出,则到今天为止,炒股收益率如何?解决这个问题的具体步骤如下: 1. 划定时间区间为2010年至今。 2. 标识金叉和死叉的时间,其中1表示金叉,0表示死叉。 3. 使用100000元作为初始资金,进行买入和卖出操作。 4. 对于金叉的情况,基于初始资金尽可能买入股票,获取金叉时间对应的开盘价作为股票的单价,并计算可以买入的股票数量。 5. 对于死叉的情况,获取死叉时间对应的开盘价,并将所有持有的股票卖出。 6. 估算最后手中剩余股票的价值,使用最后一天的收盘价乘以剩余股票的数量。 7. 计算总收益,即最后的资金减去初始资金。 以上就是根据引用和引用提供的内容,对Python作业中的股票分析问题的回答。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python进行股票分析](https://blog.csdn.net/qq_45198663/article/details/115473066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.239^v12^insert_chatgpt"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azured_xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值