# NumPy 数组属性

NumPy 数组的维数称为秩（rank），一维数组的秩为 1，二维数组的秩为 2，以此类推。

NumPy 的数组中比较重要 ndarray 对象属性有：

ndarray.ndim 秩，即轴的数量或维度的数量
ndarray.shape 数组的维度，对于矩阵，n 行 m 列
ndarray.size 数组元素的总个数，相当于 .shape 中 n*m 的值
ndarray.dtype ndarray 对象的元素类型
ndarray.itemsize ndarray 对象中每个元素的大小，以字节为单位
ndarray.flags ndarray 对象的内存信息
ndarray.real ndarray元素的实部
ndarray.imag ndarray 元素的虚部
ndarray.data 包含实际数组元素的缓冲区，由于一般通过数组的索引获取元素，所以通常不需要使用这个属性。

### ndarray.ndim

ndarray.ndim 用于返回数组的维数，等于秩。

### 实例

import numpy as np a = np.arange(24) print (a.ndim) # a 现只有一个维度 # 现在调整其大小 b = a.reshape(2,4,3) # b 现在拥有三个维度 print (b.ndim)

```1
3```

### ndarray.shape

ndarray.shape 表示数组的维度，返回一个元组，这个元组的长度就是维度的数目，即 ndim 属性(秩)。比如，一个二维数组，其维度表示"行数"和"列数"。

ndarray.shape 也可以用于调整数组大小。

### 实例

import numpy as np a = np.array([[1,2,3],[4,5,6]]) print (a.shape)

`(2, 3)`

### 实例

import numpy as np a = np.array([[1,2,3],[4,5,6]]) a.shape = (3,2) print (a)

```[[1 2]
[3 4]
[5 6]]```

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

### 实例

import numpy as np a = np.array([[1,2,3],[4,5,6]]) b = a.reshape(3,2) print (b)

```[[1, 2]
[3, 4]
[5, 6]]```

### ndarray.itemsize

ndarray.itemsize 以字节的形式返回数组中每一个元素的大小。

### 实例

import numpy as np # 数组的 dtype 为 int8（一个字节） x = np.array([1,2,3,4,5], dtype = np.int8) print (x.itemsize) # 数组的 dtype 现在为 float64（八个字节） y = np.array([1,2,3,4,5], dtype = np.float64) print (y.itemsize)

```1
8```

### ndarray.flags

ndarray.flags 返回 ndarray 对象的内存信息，包含以下属性：

C_CONTIGUOUS (C) 数据是在一个单一的C风格的连续段中
F_CONTIGUOUS (F) 数据是在一个单一的Fortran风格的连续段中
OWNDATA (O) 数组拥有它所使用的内存或从另一个对象中借用它
WRITEABLE (W) 数据区域可以被写入，将该值设置为 False，则数据为只读
ALIGNED (A) 数据和所有元素都适当地对齐到硬件上
UPDATEIFCOPY (U) 这个数组是其它数组的一个副本，当这个数组被释放时，原数组的内容将被更新

### 实例

import numpy as np x = np.array([1,2,3,4,5]) print (x.flags)

```  C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False```
{"ft_lang_label":"__label__zh","ft_lang_prob":0.80276686,"math_prob":0.9948835,"size":2250,"snap":"2020-34-2020-40","text_gpt3_token_len":1313,"char_repetition_ratio":0.15672307,"word_repetition_ratio":0.06640625,"special_character_ratio":0.30933332,"punctuation_ratio":0.17802198,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9892719,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2020-09-26T11:53:51Z\",\"WARC-Record-ID\":\"<urn:uuid:09fc9721-2d73-4edd-b035-787cbf64d997>\",\"Content-Length\":\"38171\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:343f4eaf-be79-421f-95a3-4e2f0967e054>\",\"WARC-Concurrent-To\":\"<urn:uuid:cd0179d2-a3bb-412f-8e1d-533ec78fc83e>\",\"WARC-IP-Address\":\"39.97.162.168\",\"WARC-Target-URI\":\"https://panku.pro/numpy/numpy-array-attributes.html\",\"WARC-Payload-Digest\":\"sha1:OSEIXJFDAWLBAS2GZ4Z6QM65BKAIH5N6\",\"WARC-Block-Digest\":\"sha1:SJL6VL32GHDD6P4PWQMDRNAHOO2ECNKX\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2020/CC-MAIN-2020-40/CC-MAIN-2020-40_segments_1600400241093.64_warc_CC-MAIN-20200926102645-20200926132645-00087.warc.gz\"}"}