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 中的较小的单位保持一致。
生成 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