>>> zero = np.zeros([3, 4])array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]])
a = np.array([[1,2,3],[4,5,6]])# 从现有的数组当中创建a1 = np.array(a)# 相当于索引的形式,并没有真正的创建一个新的a2 = np.asarray(a)
2.1、关于array和asarray的不同
生成等间隔的序列
start 序列的起始值stop 序列的终止值,如果endpoint为true,该值包含于序列中num 要生成的等间隔样例数量,默认为50endpoint 序列中是否包含stop值,默认为tureretstep 如果为true,返回样例,以及连续数字之间的步长dtype 输出ndarray的数据类型
# 生成等间隔的数组np.linspace(0, 100, 10)
np.arange(10, 50, 2)
# 创建均匀分布的数组# 0~1np.random.rand(10)# 默认范围一个数np.random.uniform(0, 100)# 随机整数np.random.randint(10)np.random.normal(1.75, 0.1, (10, 10))
正态分布是一种概率分布。正态分布是具有两个参数μ和σ的连续型随机变量的分布,第一参数μ是服从正态分布的随机变量的均值,第二个参数σ是此随机变量的方差,所以正态分布记作N(μ,σ )。
生活、生产与科学实验中很多随机变量的概率分布都可以近似地用正态分布来描述。
μ决定了其位置,其标准差σ。决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。
标准差如何来?
3.1方差
是在概率论和统计方差衡量一组数据时离散程度的度量
其中M为平均值,n为数据总个数,S为标准差,S^2可以理解一个整体为方差
可以理解成数据的一个离散程度的衡量
例如:我们可以模拟生成一组股票的涨跌幅的数据
500只股票,两年(504天)的涨跌幅数据,如何获取?
# 创建一个符合正太分布的500个股票504天的涨跌幅数据stock_day_rise = np.random.normal(0, 1, (500, 504))stock_day_rise.shape
# 二维的数组,两个维度 stock_day_rise[0, 0:10]
一维、二维、三维的数组如何索引?
# 三维,一维a1 = np.array([ [[1,2,3],[4,5,6]], [[12,3,34],[5,6,7]]])a1[0, 0, 1]
3.1修改形状
让刚才的股票行、日期列反过来,变成日期行,股票列
# 在转换形状的时候,一定要注意数组的元素匹配stock_day_rise.reshape([504, 500])
stock_day_rise.resize([504,500])
stock_day_rise.flatten()
3.2修改类型
stock_day_rise.reshape([504, 500]).astype(np.int32)
3.3修改小数位数
np.round(stock_day_rise[:2, :20], 4)
stock_day_rise.shape(500, 504)stock_day_rise.T.shape(504, 500)
arr = np.array([ [[1,2,3],[4,5,6]], [[12,3,34],[5,6,7]]])arr.tostring()
如果遇到:
IOPub data rate exceeded. The notebook server will temporarily stop sending output to the client in order to avoid crashing it. To change this limit, set the config variable `--NotebookApp.iopub_data_rate_limit`.
这个问题是在jupyer当中对输出的字节数有限制,需要去修改配置文件
创建配置文件
jupyter notebook --generate-configvi ~/.jupyter/jupyter_notebook_config.py
取消注释,多增加
## (bytes/sec) Maximum rate at which messages can be sent on iopub before they# are limited.c.NotebookApp.iopub_data_rate_limit = 10000000
但是不建议这样去修改,jupyter输出太大会崩溃
# 先从两年stock_day_rise拷贝一些数据temp = stock_day_rise[:4, :4].copy()
当我们不想修改某个股票数据的时候,就可以去进行拷贝操作。在拷贝的数据上进行操作