Numpy练习-数组的创建
文章目录
- 什么是numpy?
- 如何安装numpy?
- 什么是n维数组对象?
- 如何区分一维、二维、多维?
- 以下表达式运行的结果分别是什么?
- 0 * np.nan
- np.nan == np.nan
- np.inf > np.nan
- np.nan - np.nan
- 0.3 == 3 * 0.1
- 将numpy的datetime64对象转换为datetime的datetime对象。
- dt64 = np.datetime64('2020-02-25 22:10:10')
- 如何将numpy的datetime64对象转换为datetime的datetime对象?
- 给定一系列不连续的日期序列。填充缺失的日期,使其成为连续的日期序列。
- dates = np.arange('2020-02-01', '2020-02-10', 2, np.datetime64)
- 如何填写不规则系列的numpy日期中的缺失日期?
- 如何得到昨天,今天,明天的的日期
- 创建从0到9的一维数字数组。
- 如何创建一维数组?
- 创建一个元素全为True的 3×3 数组。
- 如何创建一个布尔数组?
- 创建一个长度为10并且除了第五个值为1的空向量
- 创建一个值域范围从10到49的向量
- 创建一个 3x3x3的随机数组
- 创建一个二维数组,其中边界值为1,其余值为0
- 创建长度为10的numpy数组,从5开始,在连续的数字之间的步长为3。
- 如何在给定起始点、长度和步骤的情况下创建一个numpy数组序列?
- 将本地图像导入并将其转换为numpy数组
- 如何将图像转换为numpy数组?
什么是numpy?
numpy是python中基于数组对象的科学计算库。提炼关键字,可以得出numpy以下三大特点:拥有n维数组对象;拥有广播功能;拥有各种科学计算API。
如何安装numpy?
因为numpy是一个python库,所以使用python包管理工具pip或者conda都可以安装。安装python后,打开cmd命令行,输入:
pip install numpy
什么是n维数组对象?
n维数组(ndarray)对象,是一系列同类数据的集合,可以进行索引、切片、迭代操作。numpy中可以使用array函数创建数组:
import numpy as npnp.array([1,2,3]) # array([1, 2, 3])
如何区分一维、二维、多维?
判断一个数组是几维,主要是看它有几个轴(axis)。
一个轴表示一维数组,两个轴表示二维数组,以此类推。
每个轴都代表一个一维数组。
比如说,二维数组第一个轴里的每个元素都是一个一维数组,也就是第二个轴。
一维数组一个轴:
[1,2,3]
二维数组两个轴:
[[0, 1, 2],[3, 4, 5]]
三维数组三个轴:
[[[ 0, 1, 2],[ 3, 4, 5]],[[ 6, 7, 8],[ 9, 10, 11]]]
以此类推n维数组。
以下表达式运行的结果分别是什么?
(提示: NaN = not a number, inf = infinity)
0 * np.nan
nan
np.nan == np.nan
False
np.inf > np.nan
False
np.nan - np.nan
nan
0.3 == 3 * 0.1
False
将numpy的datetime64对象转换为datetime的datetime对象。
dt64 = np.datetime64(‘2020-02-25 22:10:10’)
【知识点:时间日期和时间增量】
如何将numpy的datetime64对象转换为datetime的datetime对象?
import numpy as np
import datetimedt64=np.datetime64('2021-03-09 23:20')
dt=dt64.astype(datetime.datetime)
print(dt,type(dt))
# 2021-03-09 23:20:00 <class 'datetime.datetime'>
给定一系列不连续的日期序列。填充缺失的日期,使其成为连续的日期序列。
dates = np.arange(‘2020-02-01’, ‘2020-02-10’, 2, np.datetime64)
【知识点:时间日期和时间增量、数学函数】
如何填写不规则系列的numpy日期中的缺失日期?
import numpy as npdates = np.arange('2021-03-01', '2021-03-10', 2, np.datetime64)
print(dates)
# ['2021-03-01' '2021-03-03' '2021-03-05' '2021-03-07' '2021-03-09']out = []
for date, d in zip(dates, np.diff(dates)):out.extend(np.arange(date, date + d))
fillin = np.array(out)
output = np.hstack([fillin, dates[-1]])
print(output)
'''
['2021-03-01' '2021-03-02' '2021-03-03' '2021-03-04' '2021-03-05''2021-03-06' '2021-03-07' '2021-03-08' '2021-03-09']
'''
如何得到昨天,今天,明天的的日期
【知识点:时间日期】
(提示: np.datetime64, np.timedelta64)
import numpy as np
yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D')
today = np.datetime64('today', 'D')
tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D')
print ("Yesterday is " + str(yesterday))
print ("Today is " + str(today))
print ("Tomorrow is "+ str(tomorrow))
'''
Yesterday is 2021-03-08
Today is 2021-03-09
Tomorrow is 2021-03-10
'''
创建从0到9的一维数字数组。
【知识点:数组的创建】
如何创建一维数组?
import numpy as np
arr=np.arange(10)
print(arr) # [0 1 2 3 4 5 6 7 8 9]
创建一个元素全为True的 3×3 数组。
【知识点:数组的创建】
如何创建一个布尔数组?
import numpy as nparr=np.full([3,3],True,dtype=np.bool)
print(arr)
'''
[[ True True True][ True True True][ True True True]]
'''
arr=np.full([3,3],False,dtype=np.bool)
print(arr)
'''
[[False False False][False False False][False False False]]
'''
创建一个长度为10并且除了第五个值为1的空向量
【知识点:数组的创建】
(提示: array[4])
import numpy as npZ = np.zeros(10)
Z[4] = 1
print(Z) # [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
创建一个值域范围从10到49的向量
【知识点:创建数组】
(提示: np.arange)
Z = np.arange(10,50)
print(Z)
创建一个 3x3x3的随机数组
【知识点:创建数组】
(提示: np.random.random)
import numpy as npZ = np.random.random((3,3,3))
print(Z)
'''
[[[0.47083383 0.43319271 0.4462764 ][0.92373378 0.04720508 0.91931524][0.10227588 0.53917165 0.48142331]][[0.74342411 0.88509828 0.05655426][0.0191509 0.60773987 0.56656504][0.22828029 0.63657908 0.92540113]][[0.89634411 0.84385328 0.41337459][0.18750657 0.54391408 0.74318007][0.60543488 0.19217364 0.38100994]]]
'''
创建一个二维数组,其中边界值为1,其余值为0
【知识点:二维数组的创建】
(提示: array[1:-1, 1:-1])
import numpy as npz=np.ones((10,10))
z[1:-1,1:-1]=0
print(z)
'''
[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]
'''
创建长度为10的numpy数组,从5开始,在连续的数字之间的步长为3。
【知识点:数组的创建与属性】
如何在给定起始点、长度和步骤的情况下创建一个numpy数组序列?
import numpy as npstart=5
step=3
length=10
a=np.arange(start,start+step*length,step)
print(a) # [ 5 8 11 14 17 20 23 26 29 32]
将本地图像导入并将其转换为numpy数组
【知识点:数组的创建与属性】
如何将图像转换为numpy数组?
import numpy as np
from PIL import Imageimg1 = Image.open('这里写图片路径')
a = np.array(img1)print(a.shape, a.dtype)
Numpy练习-数组的创建相关推荐
- Numpy入门教程:01. 数组的创建与属性
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...
- Numpy 从数值范围创建数组
numpy.包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下: numpy.arange(start, stop, step, stype) 根据 start 与 ...
- python创建数组并运行,python中Numpy的数组创建
Numpy的主要对象是同种元素的多维数组 特点: 这是一个所有元素都是一种类型,通过一个正整数元组索引的元素表格 Numpy底层是使用C编写的 import numpy as np arr1 = np ...
- A01_[NumPy中文网]数组基础(创建数组,多维数组切片,数组属性)、使用数组(基本操作符,数组特殊运算符)、索引(花式索引,布尔索引,缺省索引)
NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在 ...
- python 创建空的numpy数组_Numpy入门教程:01. 数组的创建与属性
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 -- Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: ...
- numpy创建三维空数组_numpy数组的创建和属性转换
一.数据与numpy数组的创建 1. python数组的创建 python中的固定类型数组: python中提供了几种将数组存储在有效的.固定类型的数据缓存中的选项.内置的数组(array)模块可以创 ...
- Numpy:数组对象(Ndarray)的定义和创建
文章目录 数组定义 创建数组 1. 通过现有数据创建 2. 通过数值范围创建 3. 通过形状或值创建 数组定义 数组对象(Ndarray)是一个组合词,其中:N为数字,d(dimension)维度,a ...
- Numpy掩码数组masked arrays,这一篇就够了
Numpy掩码数组masked arrays,这一篇就够了 1. 什么是掩码数组 2.示例 2.1 一个例子走进掩码数组 2.2 创建一个数组第二个值是无效的 2.3 创建一个数组所有靠近1.e20的 ...
- 技术图文:Numpy 一维数组 VS. Pandas Series
背景 Numpy 提供的最重要的数据结构是 ndarray,它是 Python 中 list 的扩展. Pandas 提供了两种非常重要的数据结构 Series和DataFrame. Numpy 中的 ...
最新文章
- 一步步玩pcDuino3--mmc下的裸机流水灯
- 【廖雪峰python入门笔记】多重循环
- Proxool 连接池销毁问题
- 什么是JSON?我为什么要使用它?
- asp.net form submit 在Chrome里面看Form提交
- 从 DevOps 到 Serverless
- Android中的JSON解析方式:json; Gson ; Fastjson
- 【渝粤题库】陕西师范大学209912 金融中介学Ⅰ 作业
- 学用状态机模式,写的报销流程,请指教
- 运算器为计算机提供了计算与逻辑,【单选题】运算器为计算机提供了计算与逻辑功能,因此称它为()....
- 华为第二批“十大军团”正式成立!
- java ab性能测试,服务器JAVA性能测试——SPECjbb2005
- Java语言String字符串课后作业
- 基于windows的iOS自动化测试
- mt管理器主题修改教程_QQ主题+微博主题
- Leetcode520Detect Capital检测大写字母
- 关于使用winfrom程序调用命令控制台
- 使用Termux把Android手机变成SSH服务器
- 单片机、ARM、MUC、DSP、FPGA、嵌入式
- Python爬虫:Scrapy 框架快速入门及实战演练