numpy 是使用python进行数据分析不可或缺的第三方库,非常多的科学计算工具都是基于 numpy 进行开发的。
ndarray对象是用于存放同类型元素的多维数组,是numpy中的基本对象之一,另一个是func对象。本文主要内容是:1 、简单介绍ndarray对象;2、ndarray对象的常用属性;3、如何创建ndarray对象;4、ndarray元素访问。
它的维度以及个维度上的元素个数由shape决定。
1 numpy.ndarray()
标题中的函数就是numpy的构造函数,我们可以使用这个函数创建一个ndarray对象。构造函数有如下几个可选参数:
参数
类型
作用
shape
int型tuple
多维数组的形状
dtype
data-type
数组中元素的类型
buffer
用于初始化数组的buffer
offset
int
buffer中用于初始化数组的首个数据的偏移
strides
int型tuple
每个轴的下标增加1时,数据指针在内存中增加的字节数
order
'C' 或者 'F'
'C':行优先;'F':列优先
实例:
>>> np.ndarray(shape=(2,3), dtype=int, buffer=np.array([1,2,3,4,5,6,7]), offset=0, order="C")
array([[1, 2, 3],
[4, 5, 6]])
>>> np.ndarray(shape=(2,3), dtype=int, buffer=np.array([1,2,3,4,5,6,7]), offset=0, order="F")
array([[1, 3, 5],
[2, 4, 6]])
>>> np.ndarray(shape=(2,3), dtype=int, buffer=np.array([1,2,3,4,5,6,7]), offset=8, order="C")
array([[2, 3, 4],
[5, 6, 7]])
2 ndarray对象的常用属性
接下来介绍ndarray对象最常用的属性
属性
含义
T
转置,与self.transpose( )相同,如果维度小于2返回self
size
数组中元素个数
itemsize
数组中单个元素的字节长度
dtype
数组元素的数据类型对象
ndim
数组的维度
shape
数组的形状
data
指向存放数组数据的python buffer对象
flat
返回数组的一维迭代器
imag
返回数组的虚部
real
返回数组的实部
nbytes
数组中所有元素的字节长度
实例:
>>> a = np.array(range(15)).reshape(3,5)
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> a.T
array([[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
>>> a.size
15
>>> a.itemsize
8
>>> a.ndim
2
>>> a.shape
(3, 5)
>>> a.dtype
dtype('int64')
3 创建ndarray
3.1 array
使用array函数,从常规的python列表或者元组中创建数组,元素的类型由原序列中的元素类型确定。
numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
实例:
>>> np.array([1, 2, 3])
array([1, 2, 3])
>>> np.array([[1, 2],[3, 4]])
array([[1, 2],
[3, 4]])
>&