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”的集合。
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