码迷,mamicode.com
首页 > 其他好文 > 详细

Numpy基础(1)

时间:2021-01-01 12:54:15      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:类型   创建   nes   data   nump   元数据   shape   ges   性能   

一. 内存中的numpy对象

1. 元数据(metadata)

存储对目标数组的描述信息,如:ndim、dimensions、dtype、data等。

2. 实际数据

完整的数组数据

将实际数据与元数据分开存放,一方面提高了内存空间的使用效率,另一方面减少对实际数据的访问频率,提高性能。

3. ndarray数组对象的特点

Numpy数组是同质数组,即所有元素的数据类型必须相同
Numpy数组的下标从0开始,最后一个元素的下标为数组长度减1

二. numpy数组的创建

np.array(任何可被解释为Numpy数组的逻辑结构)

np.zeros

np.zeros(数组元素个数, dtype=‘类型‘)

创建指定大小的数组,数组元素以 0 来填充

np.ones

np.ones(数组元素个数, dtype=‘类型‘)

创建指定形状的数组,数组元素以 1 来填充

三. ndarray对象属性的基本操作

元素的类型:ndarray.dtype

eg. import numpy as np

ary = np.array([1, 2, 3, 4, 5, 6])
print(type(ary), ary, ary.dtype)
#转换ary元素的类型
b = ary.astype(float)
print(type(b), b, b.dtype)
#转换ary元素的类型
c = ary.astype(str)
print(type(c), c, c.dtype)

数组元素的个数:ndarray.size

秩,轴的数量或维度的数量:ndarray.ndim

数组的维度,对于矩阵,n 行 m 列:ndarray.shape

NumPy 也提供了 reshape 函数来调整数组大小。

四. Numpy的内部基本数据类型

numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 np.bool_,np.int32,np.float32,等.

布尔型              bool_  

有符号整数型   nt8(-128~127) / int16 / int32 / int64

无符号整数型   uint8(0~255) / uint16 / uint32 / uint64

 浮点型             float16 / float32 / float64 

复数型              complex64 / complex128 

字串型              str_,每个字符用32位Unicode编码表示

日期类型          datetime64

自定义复合类型

eg. import numpy as np

data=[
(‘zs‘, [90, 80, 85], 15),
(‘ls‘, [92, 81, 83], 16),
(‘ww‘, [95, 85, 95], 15)
]
#第一种设置dtype的方式
a = np.array(data, dtype=‘U3, 3int32, int32‘)
print(a)
print(a[0][‘f0‘], ":", a[1][‘f1‘])
#第二种设置dtype的方式
b = np.array(data, dtype=[(‘name‘, ‘str_‘, 2),
(‘scores‘, ‘int32‘, 3),
(‘age‘, ‘int32‘, 1)])
print(b[0][‘name‘], ":", b[0][‘scores‘])

#第三种设置dtype的方式
c = np.array(data, dtype={
‘names‘: [‘name‘, ‘scores‘, ‘ages‘],
‘formats‘: [‘U3‘, ‘3int32‘, ‘int32‘]})
print(c[0][‘name‘], ":", c[0][‘scores‘], ":", c.itemsize)

#第四种设置dtype的方式
d = np.array(data, dtype={‘name‘: (‘U3‘, 0),
‘scores‘: (‘3int32‘, 16),
‘age‘: (‘int32‘, 28)})
print(d[0][‘names‘], d[0][‘scores‘], d.itemsize)

#测试日期类型数组
f = np.array([‘2011‘, ‘2012-01-01‘, ‘2013-01-01 01:01:01‘,‘2011-02-01‘])
f = f.astype(‘M8[D]‘)

f = f.astype(‘i4‘)
print(f[3]-f[0])

Numpy基础(1)

标签:类型   创建   nes   data   nump   元数据   shape   ges   性能   

原文地址:https://www.cnblogs.com/Jbincao/p/14202738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!