Numpy1_数据类型及数组创建_Datawhale十月组队学习

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Numpy1_数据类型及数组创建_Datawhale十月组队学习,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Numpy学习|数据类型及数组创建:


1.几个常量

np.nan:两个np.nan是不相等的
np.inf:表示无穷大
np.pi、np.e:圆周率和自然常数


2.数据类型

在这里插入图片描述
在这里插入图片描述

整数类型的机器限制:ii16 = np.iinfo(np.int)
数据类型对象的元素大小:arr.itemsize


3.时间日期和时间增量


(1)将字符串转换成时间日期类型 datetime64

#要用-相连接,月份前加0
a = np.datetime64('2020-02-03') 
a = np.datetime64('2020-03', 'D')#指定日期单位为天
np.arange('2020-02-03','2020-05-02',dtype = np.datetime64) #生成日期范围

(2)timedelta64 表示两个 datetime64 之间的差。timedelta64 也是带单位的,并且和相减运算中的两个 datetime64 中的较小的单位保持一致。
datatime64是带单位的日期时间类型

生成 timedelta64时,要注意年(‘Y’)和月(‘M’)这两个单位无法和其它单位进行运算(一年有几天?一个月有几个小时?这些都是不确定的)


(3)工作日的相关操作

#是否为工作日:
np.is_busday('2020-05-01')
#计算非0的数据
a=np.is_busday(np.arange(np.datetime64('2020-05-01'),np.datetime64('2020-06-01')))
np.count_nonzero(a) 

4.数组的创建

numpy 提供的最重要的数据结构是ndarray,它是 python 中list的扩展。
array()和asarray()的区别:当数据源是ndarray 时,array()仍然会 copy 出一个副本,占用新的内存,但不改变 dtype 时 asarray()不会。


(c)通过fromfunction()函数进行创建

#定义函数:
def f(x, y):
    return 10 * x + y

x = np.fromfunction(f, (5, 4), dtype=int)
print(x)
# [[ 0  1  2  3]
#  [10 11 12 13]
#  [20 21 22 23]
#  [30 31 32 33]
#  [40 41 42 43]]

x = np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int)
print(x)
# [[ True False False]
#  [False  True False]
#  [False False  True]]

• arange()函数:返回给定间隔内的均匀间隔的值。
• linspace()函数:返回指定间隔内的等间隔数字。
• logspace()函数:返回数以对数刻度均匀分布。
• numpy.random.rand() 返回一个由[0,1)内的随机数组成的数组。


• ones()函数:返回给定形状和类型的1数组。 • ones_like()函数:返回与给定数组形状和类型相同的1数组

5.测验Test

0.3 == 3 * 0.1#输出为错误Flase

日期类型转化

#日期类型的转化:
import datetime
import numpy as np
dt64 = np.datetime64('2020-03-05 18:00:00')
dt = dt64.astype(datetime.datetime)

如何得到昨天,今天,明天的的日期
【知识点:时间日期】 (提示: np.datetime64, np.timedelta64)

yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D')
today    = np.datetime64('today', 'D')
tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D')

创建一个二维数组,其中边界值为1,其余值为0
【知识点:二维数组的创建】 (提示: array[1:-1, 1:-1])

Z = np.ones((10,10))
Z[1:-1,1:-1] = 0
print(Z)

创建长度为10的numpy数组,从5开始,在连续的数字之间的步长为3。
【知识点:数组的创建与属性】
如何在给定起始点、长度和步骤的情况下创建一个numpy数组序列?

import numpy as np

start = 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 Image

img1 = Image.open('test.jpg')
a = np.array(img1)

print(a.shape, a.dtype)
# (959, 959, 3) uint8

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/165194.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!