NumPy ndarray对象

创建ndarray对象

通过 NumPy 的内置函数 array() 可以创建 ndarray 对象,其语法格式如下

numpy.array(object, dtype = None, copy = True, order = None,ndmin = 0)

object表示一个数组序列。
dtype可选参数,通过它可以更改数组的数据类型。
copy可选参数,表示数组能否被复制,默认是 True。
order以哪种内存布局创建数组,有 3 个可选值,分别是 C(行序列)/F(列序列)/A(默认)。
ndim用于指定数组的维度。

1
2
3
4
import numpy
a=numpy.array([1,2,3])#使用列表构建一维数组
print(a)
print(type(a))
1
2
b=numpy.array([[1,2,3],[4,5,6]]) #创建多维数组
print(b)

如果要改变数组元素的数据类型,可以使用通过设置 dtype,如下所示:c=numpy.array([2,4,6,8],dtype=”数据类型名称”)

1
2
c=numpy.array([2,4,6,8],dtype="complex")
print(c)
ndim查看数组维数
1
2
3
import numpy as np 
arr = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [9, 10, 11, 23]])
print(arr.ndim)

也可以使用 ndim 参数创建不同维度的数组:

1
2
3
4
#输出一个二维数组
import numpy as np
a = np.array([1, 2, 3,4,5], ndim = 2)
print(a)
reshape数组变维

数组的形状指的是多维数组的行数和列数。Numpy 模块提供 reshape() 函数可以改变多维数组行数和列数,从而达到数组变维的目的。因此数组变维即对数组形状的重塑

1
2
3
4
5
import numpy as np 
e = np.array([[1,2],[3,4],[5,6]])
print("原数组",e)
e=e.reshape(2,3)
print("新数组",e)

NumPy数据类型

数据类型对象
数据类型对象,主要用来描述数组元素的数据类型、大小以及字节顺序。

语法格式如下:
np.dtype(object)

创建一个 dtype 对象可以使用下列方法:a= np.dtype(np.int64)

1
2
3
import numpy as np 
a= np.dtype(np.int64)
print(a)

数据类型标识码

1
2
3
4
#创建数据类型score
import numpy as np
dt = np.dtype([('score','i1')])
print(dt)

定义结构化数据

通常情况下,结构化数据使用字段的形式来描述某个对象的特征。以下示例描述一位老师的姓名、年龄、工资的特征,该结构化数据其包含以下字段:str 字段:nameint 字段:agefloat 字段:salary

1
2
3
4
5
6
7
import numpy as np
teacher = np.dtype([('name','S20'), ('age', 'i1'), ('salary', 'f4')])
#输出结构化数据teacher
print(teacher)
#将其应用于ndarray对象
b = np.array([('ycs', 32, 6357.50),('jxe', 28, 6856.80)], dtype = teacher)
print(b)

NumPy数组属性

ndarray.shape

shape 属性的返回值一个由数组维度构成的元组,比如 2 行 3 列的二维数组可以表示为(2,3),该属性可以用来调整数组维度的大小。

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

通过 shape 属性修改数组的形状大小:

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

NumPy 还提供了一个调整数组形状的 reshape() 函数。

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

该属性返回的是数组的维数

1
2
3
4
5
6
7
8
9
import numpy as np
#随机生成一个一维数组
c = np.arange(24)
print(c)
print(c.ndim)
#对数组进行变维操作
e = c.reshape(2,4,3)
print(e)
print(e.ndim)
ndarray.itemsize

返回数组中每个元素的大小(以字节为单位)

1
2
3
4
#数据类型为int8,代表1字节
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.int8)
print (x.itemsize)
ndarray.flags

返回 ndarray 数组的内存信息,比如 ndarray 数组的存储方式,以及是否是其他数组的副本等。

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