当前位置: 移动技术网 > IT编程>脚本编程>Python > Numpy的属性

Numpy的属性

2020年07月07日  | 移动技术网IT编程  | 我要评论

一、ndarray

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

2、属性

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

 

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

# 创建一个数组
>>> 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数组的形状表示,那个形状怎么理解。我们可以通过图示的方式表示:

二维数组:

三维数组:

 

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类型,先看看对于数组来说都有哪些类型

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网