【画学numpy】2.numpy数组创建

人工智能33

本文是画学numpy系列文章之一
⭐️github:drawing_and_studying_numpy包含了可以运行的notebook文件以及本文绘制的所有插图。
也可以选择在百度的AI studio【画学numpy】上运行notebook代码

🌈画学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: 起点,默认为0
  • end: 终点
  • step: 步长,默认为1

从起点开始,每次按步长递增生成数组, 生成的数组不包括终点

只有一个参数时,会默认从0开始,以步长1生成数组。
【画学numpy】2.numpy数组创建

a = np.arange(4)
print(a)
[0 1 2 3]

提示
为了文档更加简洁,下面的代码块省略赋值后再 print的操作。
坐标轴上的空心圆表示生成的数组不包括这个点。
只有两个参数时,表示指定了起点和终点,默认以步长1生成数组。

【画学numpy】2.numpy数组创建

np.arange(2, 6)
array([2, 3, 4, 5])

从2开始到9结束,步长为2
【画学numpy】2.numpy数组创建

np.arange(2, 9, 2)
array([2, 4, 6, 8])

range的一大区别是 np.arange的步长可以是小数

小数的创建规律同整数
【画学numpy】2.numpy数组创建

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,且前后两个元素的间隔相等
【画学numpy】2.numpy数组创建

np.linspace(1, 4, num=5)
array([1.  , 1.75, 2.5 , 3.25, 4.  ])

num=4
【画学numpy】2.numpy数组创建

np.linspace(1, 4, num=4)
array([1., 2., 3., 4.])

num=3
【画学numpy】2.numpy数组创建

np.linspace(1, 4, num=3)
array([1. , 2.5, 4. ])

num=2时,生成的数组恰好是由起点和终点组成的
【画学numpy】2.numpy数组创建

np.linspace(1, 4, num=2)
array([1., 4.])

num=1时,生成了一个只有起点的数组
【画学numpy】2.numpy数组创建

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.]])

【画学numpy】2.numpy数组创建

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.]])

【画学numpy】2.numpy数组创建

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')>

【画学numpy】2.numpy数组创建

随机数组

下面介绍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)

生成一个范围是 lowhigh之间的随机数组

  • 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]])

小结

【画学numpy】2.numpy数组创建

下一章【画学numpy】3.numpy数组操作

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])
【画学numpy】2.numpy数组创建

; 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类型,并打印出前五行:
【画学numpy】2.numpy数组创建

df.describe()

【画学numpy】2.numpy数组创建

3、收盘价与成交量关系图


df['close'].plot()

【画学numpy】2.numpy数组创建


df[['close','volume']].plot(subplots=True)

【画学numpy】2.numpy数组创建
基本上我们就可以得到收盘价与成交量之间的关系图了,但是从两张图中来看,其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)

【画学numpy】2.numpy数组创建

4、收益率曲线

(>......

Original: https://blog.csdn.net/weixin_47974364/article/details/123408886
Author: 貮叁
Title: python金融数据分析及可视化

相关文章
深度学习模型预测时间很慢 人工智能

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

在做深度学习任务时,我是做图像目标检测,用tensorflow或者keras或者pytorch训练完模型,然后就是做预测,发现无论是用GPU还是CPU都非常慢,然后百度了好久都没有解决问题。 无论是不...
智能垃圾分类 人工智能

智能垃圾分类

智能垃圾分类 2021.4.9,浙江省举办了第七届工程训练大赛,我们组参加的是垃圾分类的项目,我们组顺利挺进决赛,但是我们看决赛规则并没有标注多种垃圾分类,我们没有完全的准备好应对多种垃圾分类,所以与...
机器学习:SOM聚类的实现 人工智能

机器学习:SOM聚类的实现

SOM SOM算法是一种无监督学习的神经网络算法。由输入层和竞争层(输出层)组成。SOM是一种聚类方法。 ; 算法步骤 初始化竞争层;竞争层一行代表一个坐标点(x,y)。 根据竞争层的尺寸初始化权重矩...
主流的音视频SDK调研 人工智能

主流的音视频SDK调研

需求来源: ● 功能需求: 1、文字聊天:包含文字聊天和简单的表情功能,以及发送图片功能 2、语音聊天:可以进行线上语音功能,语音与文字聊天计时方式是合并计算 3、自动录音:语音聊天自动进行录音并进行...
浅谈点云与三维重建 人工智能

浅谈点云与三维重建

《浅谈点云与三维重建》 【本期导读】 三维重建技术在各领域已经展现出了不可替代性,而点云作为三维重建的重要工具,却常常被忽略。本文将从概念定义、数据来源、类别划分、应用场景等方面来介绍点云并剖析点云是...
浏览器里玩机器学习、深度学习 人工智能

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

大家好,我是章北海 我一直探索更好玩地介绍机器学习,降低学习门槛,用其开发有趣,有价值的应用。之前介绍过很多机器学习应用方面的玩法,比如:gRPC部署训练好的机器学习模型,使用FastAPI构建机器学...
DeepLab2:用于深度标记的TensorFlow库(2021) 人工智能

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

深度标记是指通过深度神经网络为图像中的每个像素分配预测值来解决计算机视觉问题。只要感兴趣的问题可以用这种方式表述,DeepLab2 就应该达到目的。此外,此代码库包括我们最近的和最先进的深度标签研究模...
百度api语音识别 人工智能

百度api语音识别

百度API进行音频识别(包括长音频) api注册 短音频识别 长音频识别 音频格式转换 项目地址 参考网页 api注册 首先进度百度智能云,之后在里面注册一个语音识别api,获得密钥进行拼接使用 百度...