Numpy-darray多数组对象
ndarry是一种通用的同构数据多维容器,即,容器里的所有元素都是相同类型的。每个数组元素都有一个shape(多维数组的行列数)和dtype(元素类型)属性。
1 常用的数组创建函数
函数 | 说明 |
---|---|
array | 将输入数据(列表、元组、数组、或其他序列类型)转换成narray,可以在转换的过程中指定dtype,或者默认与原数据类型相同 |
asarray | 将输入数据转换成ndarray,如果输入本身就是一个ndarray就不进行复制 |
arange | 类似于内置的range,但返回的是一个narray而不是一个列表 |
ones、ones_like | 根据指定的形状和dtype创建全1数组。ones_like以另外一个数组为参数,并根据其形状和dtype穿件一个全1数组 |
zeros、zeros_like | 类似于ones、ones_like,但是创建的是全0数组 |
empty、empty_like | 创建新数组,只分配内存空间但不填充任何值 |
eye、identity | 创建单位方阵 |
import numpy as np
#生成一个原始数组
arrayInit = np.arange(2,10,2)
arrayInit
array([2, 4, 6, 8])
print arrayInit.shape,arrayInit.dtype
(4L,) int32
可以通过reshape(n,m)来改变原始数组的行列分布
arrayInit.reshape(2,2)
array([[2, 4],
[6, 8]])
注意reshape并不改变原来的数组
演示使用asarray
np.asarray(arrayInit)
array([2, 4, 6, 8])
arrayInit
array([2, 4, 6, 8])
arrayOne = np.arange(6).reshape(2,3)
arrayOne
array([[0, 1, 2],
[3, 4, 5]])
np.asarray(arrayOne)
array([[0, 1, 2],
[3, 4, 5]])
tem = [1,2,3]
np.asarray(tem)
array([1, 2, 3])
tem
[1, 2, 3]
从上述代码中可以看出,这些函数仅是创建新的narray,并不改变原来的输入数据,若想保留该创建需要创建新的变量
2 数组和标量之间的运算
矢量化:可以对数据执行批量运算。数组可以实现矢量化,大小相等的数组之间的任何算数运算都会将运算应用到元素级
arrayTwo = np.array([[1,2,3],[4,5,6]])#将列表转换成narray
arrayTwo
array([[1, 2, 3],
[4, 5, 6]])
arrayTwo * arrayTwo
array([[ 1, 4, 9],
[16, 25, 36]])
arrayTwo**2
<