欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Numpy的属性

程序员文章站 2022-04-19 12:26:10
一、ndarrayNumPy provides an N-dimensional array type, the ndarray, which describes a collection of “items” of the same type.NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合。Python系列教程,免费获取,遇到bug及时反馈,讨论交流可加扣裙<60 61 15 02 7>1、特点每个item都占用相同大小的内存块每...

一、ndarray

NumPy provides an N-dimensional array type, the ndarray, which describes a collection of “items” of the same type.

NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合。
Numpy的属性
Python系列教程,免费获取,遇到bug及时反馈,讨论交流可加扣裙<60 61 15 02 7>

1、特点

  • 每个item都占用相同大小的内存块
  • 每个item是由单独的数据类型对象指定的,除了基本类型(整数,浮点数 )之外,数据类型对象还可以表示数据结构。

2、属性

数组属性反映了数组本身固有的信息。
Numpy的属性
 

首先创建一些数组,关于创建数组后详细介绍。

# 创建一个数组
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([1,2,3,4])
>>> c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])

打印出属性的值

# 类型,大小,字节数
>>> a.dtype # dtype('int64')
>>> a.size # 元素的个数 6
>>> a.nbytes # 总字节数 48
>>> a.itemsize # 一个元素的长度

# 形状比较
# 1维形状 (4,)
# 2维形状 (2,3)
# 3维形状 (2, 2, 3)
>>> a.shape
>>> b.shape
>>> c.shape

(2, 3)
(4,)
(2, 2, 3)

# 内存风格
# 默认C风格
>>> a.flags
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False

3、数组的形状

从刚才打印的形状看到numpy数组的形状表示,那个形状怎么理解。我们可以通过图示的方式表示:

二维数组:
Numpy的属性
三维数组:
Numpy的属性
 

4、数组的类型

>>> x = [[0, 1],
       [2, 3]]
>>> x
array([[0, 1],
       [2, 3]])
>>> x.dtype
dtype('int32')
>>> type(x.dtype)
<type 'numpy.dtype'>

dtype是numpy.dtype类型,先看看对于数组来说都有哪些类型
Numpy的属性

4.1创建数组的时候指定类型

>>> a = np.array([[1,2,3],[4,5,6]], dtype=np.float32)
>>> a.dtype
dtype('float32')

>>> arr = np.array(['python','tensorflow','scikit-learn','numpy'],dtype = np.string_)
>>> arr.dtype
array([b'python', b'tensorflow', b'scikit-learn', b'numpy'], dtype='|S12')

4.2拓展-自定义数据结构

通常对于numpy数组来说,存储的都是同一类型的数据。但其实也可以通过np.dtype实现 数据类型对象表示数据结构

假设我们现在要存储若干个学生的姓名和身高,那么需要自己定义数据结构实现

拓展内容:

>>> mytype = np.dtype([('name', np.string_, 10), ('height', np.float64)])
>>> mytype
dtype([('name', 'S10'), ('height', '<f8')])

>>> arr = np.array([('Sarah', (8.0)), ('John', (6.0))], dtype=mytype)
>>> arr
array([(b'Sarah', 8.), (b'John', 6.)],
      dtype=[('name', 'S10'), ('height', '<f8')])
>>> arr[0]['name']

对于存储复杂关系的数据,我们其实会选择Pandas更加方便的工具,后面我们详细介绍!

本文地址:https://blog.csdn.net/bobin666/article/details/107158764