本文是画学numpy系列文章之一
⭐️github:drawing_and_studying_numpy包含了可以运行的notebook文件以及本文绘制的所有插图。
也可以选择在百度的AI studio【画学numpy】上运行notebook代码
🌈画学numpy系列文章目录:
- 【画学numpy】介绍
- 【画学numpy】1.numpy数组初识
- 【画学numpy】2.numpy数组创建
- 【画学numpy】3.numpy数组操作
- 【画学numpy】4.numpy数组索引
- 【画学numpy】5.numpy数组运算
numpy数组创建
上一小节中,创建一个长为4的1维数组要写4个数字,如果要创建一个长为100的数组,就要写100个数字,未免太麻烦了一点。
本小节,将介绍一系列十分常用且方便的数组创建方法:
- 等间隔数组:数组两两之间间隔相同,类似等差数列。
- 全等数组:数组里所有元素都相同。
- 随机数组:按要求随机生成数组,做模拟的时候很有用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uz8DiaYd-1647971377746)(./images/2.numpy数组创建_思维导图1.png)]
import numpy as np
print(np.__version__)
1.22.3
等间隔数组
以下两个函数只能创建一维数组。
np.arange()
: 按照给定的 步长根据起点和终点生成一维数组np.linspace()
: 按照给定的 数组长度,均匀划分起点到终点的距离生成一维数组
np.arange()
📖官方文档
numpy.arange(start, end, step, ...)
np.arange()
函数和python自带的 range()
函数十分类似。
start
: 起点,默认为0end
: 终点step
: 步长,默认为1
从起点开始,每次按步长递增生成数组, 生成的数组不包括终点
只有一个参数时,会默认从0开始,以步长1生成数组。
a = np.arange(4)
print(a)
[0 1 2 3]
提示
为了文档更加简洁,下面的代码块省略赋值后再
坐标轴上的空心圆表示生成的数组不包括这个点。
只有两个参数时,表示指定了起点和终点,默认以步长1生成数组。
np.arange(2, 6)
array([2, 3, 4, 5])
从2开始到9结束,步长为2
np.arange(2, 9, 2)
array([2, 4, 6, 8])
和 range
的一大区别是 np.arange
的步长可以是小数
小数的创建规律同整数
np.arange(1, 1.4, 0.1)
array([1. , 1.1, 1.2, 1.3])
提示
再次提醒np.arange(start, end, step)
,这个函数生成的数组不包含end
值
np.linspace()
📖官方文档
numpy.linspace(start, end, num=50, ...)
start
: 起点end
: 终点num
: 一维数组长度
根据起点和终点生成间隔相同的一维数组, 生成的数组包括终点,数组长度为 num
下面以1作为起点,4作为终点,尝试不同的 num
以了解 np.linspace
的使用
num=5
时,生成的数组长度为5,生成的数组包含了起点1和终点4,且前后两个元素的间隔相等
np.linspace(1, 4, num=5)
array([1. , 1.75, 2.5 , 3.25, 4. ])
num=4
时
np.linspace(1, 4, num=4)
array([1., 2., 3., 4.])
num=3
时
np.linspace(1, 4, num=3)
array([1. , 2.5, 4. ])
num=2
时,生成的数组恰好是由起点和终点组成的
np.linspace(1, 4, num=2)
array([1., 4.])
num=1
时,生成了一个只有起点的数组
np.linspace(1, 4, num=1)
array([1.])
全等数组
以下3个函数创建的数组,所有数组元素均相等
np.zeros()
: 生成一个全为0的一维或多维数组。np.ones()
: 生成一个全为1的一维或多维数组。np.full()
: 生成一个元素全部相等的一维或多维数组。
np.zeros()
📖官方文档
numpy.zeros(shape, ...)
生成一个全为0的数组,使用频率也是很高的一个函数
生成一个全为0的一维数组
np.zeros(shape=4)
array([0., 0., 0., 0.])
生成一个全为0的二维数组
np.zeros(shape=(3, 4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
np.ones()
📖官方文档
numpy.ones(shape, ...)
生成一个全为1的数组,与 np.zeros()
类似
生成一个全为1的一维数组
np.ones(shape=4)
array([1., 1., 1., 1.])
生成一个全为1的二维数组
np.ones(shape=(3, 4))
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
np.full()
📖官方文档
numpy.full(shape, fill_value, ...)
生成一个全为某个数的数组,这个数也可以是字符型的。
- shape: 数组的形状
- fill_value: 数组的值
生成一个全为2.4的一维数组
np.full(shape=4, fill_value=2.4)
array([2.4, 2.4, 2.4, 2.4])
生成一个全为 "a"
的二维数组
np.full(shape=(3, 4), fill_value='a')
array([['a', 'a', 'a', 'a'],
['a', 'a', 'a', 'a'],
['a', 'a', 'a', 'a']], dtype='<u1') < code></u1')>
随机数组
下面介绍5个常用的随机数组创建函数
np.random.random()
: 生成一个 0到1之间均匀分布的随机数组np.random.uniform()
: 生成一个 指定区间均匀分布的随机数组np.random.randn()
: 生成一个 标准正态分布的的随机数组np.random.normal()
: 生成一个 指定正态分布的的随机数组np.random.randint()
: 生成一个指定区间范围的随机整数数组
np.random.random()
📖官方文档
numpy.random.random(size)
生成一个0到1之间的随机数组
- size: 数组的形状
生成一个0到1之间的1维随机数组
np.random.random(4)
array([0.9155639 , 0.0879231 , 0.50418975, 0.79625964])
生成一个0到1之间的2维随机数组
np.random.random((3, 4))
array([[0.29551936, 0.42407484, 0.65833207, 0.54675449],
[0.64280259, 0.42581316, 0.12087349, 0.72347867],
[0.36625864, 0.71585893, 0.24240265, 0.90152112]])
np.random.uniform()
📖官方文档
numpy.random.uniform(low=0.0, high=1.0, size=None)
生成一个范围是 low
到 high
之间的随机数组
low
: 数组的最小值high
: 数组的最大值size
: 数组的形状
其实跟
np.random.random()
类似,就是多了控制范围的2个参数。
生成一个2到5之间的1维随机数组
np.random.uniform(low=2, high=5, size=4)
array([4.46704977, 3.28453679, 3.8914482 , 4.23255661])
生成一个-3到3之间的2维随机数组
np.random.uniform(-3, 3, (3, 4))
array([[ 0.53919671, 2.70351516, 1.91513643, -0.0198369 ],
[ 2.43241932, -2.99126798, -2.1072604 , -1.95992406],
[ 2.23506767, -2.32354201, 1.18681695, -0.09019135]])
np.random.randn()
📖官方文档
numpy.random.randn(d0, d1, d2, ...)
生成一个均值为0方差为1的标准正态分布随机数组
d0, d1, ...
: 数组的形状
生成一个1维标准正态分布随机数组
np.random.randn(4)
array([-0.97841294, 0.08917692, 0.05429765, 0.38660857])
生成一个2维标准正态分布随机数组
np.random.randn(3, 4)
array([[ 1.64886552, 0.36417621, 0.77745513, -1.14481688],
[-1.0317714 , -0.13213342, -0.38355106, -1.09655604],
[ 1.5982574 , 0.10802592, -1.94052385, 1.07061462]])
np.random.normal()
📖官方文档
numpy.random.normal(loc=0.0, scale=1.0, size=None)
生成一个均值为 loc
标准差为 scale
的正态分布随机数组
loc
: 数组的均值scale
: 数组的标准差size
: 数组的形状
生成一个均值为2,标准差为10的一维正态分布随机数组
np.random.normal(loc=2, scale=10, size=4)
array([ 11.44176805, -18.58578423, -0.1879512 , 10.43410251])
生成一个均值为-5,标准差为5的二维正态分布随机数组
np.random.normal(-5, 5, size=(3, 4))
array([[ 0.78720712, -1.01289235, -2.97885233, 0.42613163],
[ -6.00490185, -0.71370871, 0.1223361 , -9.68017774],
[ -3.09613496, -10.65665833, -3.89814507, -0.69998495]])
np.random.randint()
📖官方文档
numpy.random.randint(low, high=None, size=None, ...)
生成一个指定区间 [low, high)
内的随机整数数组, 不包含最大值
low
: 最小值high
: 最大值,如果high=None
,那默认生成的范围是[0, low)
。否则生成的范围是[low, high)
size
: 数组的形状
生成一个0到5(不包含5)之间的随机一维整数数组
np.random.randint(5, size=8)
array([0, 1, 3, 4, 3, 0, 2, 2])
生成一个1到8(不包含8)之间的随机二维整数数组
np.random.randint(1, 8, (3, 4))
array([[2, 6, 7, 4],
[3, 2, 5, 2],
[3, 4, 1, 4]])
小结
Original: https://blog.csdn.net/Light2077/article/details/123676032
Author: Light2077
Title: 【画学numpy】2.numpy数组创建
相关阅读
Title: python金融数据分析及可视化
目录
1、数据来源——Wind金融终端
在Wind数据库中下载到的宁德时代(代码300750.SZ)从2020-01-03到2021-12-31共485个数据,包括开盘价,最高价,最低价,收盘价以及交易量。
(需要数据进行操作的同学可以在我的资源上下载,由于Wind资讯金融终端不是免费的,而且作为喜欢白嫖的我们,有什么办法得到免费的数据呢,下次找到了一定分享给大家zll[doge])
; 2、数据读取及其基本描述
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('....../300750SZ.xls')
此处注意新版pandas.read_excel()函数并不支持.xlsx文件的读取,因此需要将数据文件类型转化为xls(或者可以用其他库函数,不过我觉得这个办法是最简单的)
df = pd.DataFrame(data)
df.head()
将数据data转化为DataFrame类型,并打印出前五行:
df.describe()
3、收盘价与成交量关系图
df['close'].plot()
df[['close','volume']].plot(subplots=True)
基本上我们就可以得到收盘价与成交量之间的关系图了,但是从两张图中来看,其x轴均不是日期,并且成交量一般使用的是柱状图,所以,我们加一点点细节让图变得好看一些。
list_date = list(df['Date'])
df.index = list_date
price = df['close']
volumes = df['volume']
top = plt.subplot2grid((4,4), (0,0), rowspan=3, colspan=4)
top.plot(price.index, price, label='close')
plt.title('300750.SZ Close Price from 2020-2021')
plt.legend(loc=2)
bottom = plt.subplot2grid((4,4), (3,0), rowspan=1, colspan=4)
bottom.bar(volumes.index, volumes)
plt.title('300750.SZ Daily Trading Volume')
plt.gcf().set_size_inches(12,8)
plt.subplots_adjust(hspace=0.75)
4、收益率曲线
(>......
Original: https://blog.csdn.net/weixin_47974364/article/details/123408886
Author: 貮叁
Title: python金融数据分析及可视化

深度学习模型预测时间很慢

智能垃圾分类

水下目标检测之数据集和数据增强方法

kaldi从下载到配置环境再到编译记录

机器学习:SOM聚类的实现

主流的音视频SDK调研

浅谈点云与三维重建

tf2.0不降版本也能完美解决module ‘tensorflow’ has no attribute ‘contrib’ 等类似的问题

InceptionV3网络结构讲解(Tensorflow-2.6.0实现网络结构)

图像超分综述:超长文一网打尽图像超分的前世今生 (附核心代码)

浏览器里玩机器学习、深度学习

DeepLab2:用于深度标记的TensorFlow库(2021)

keras搭建unet模型—语义分割

百度api语音识别
