首先需要创建数组才能对其进行运算和操作。可以通过arrray()函数传递Python的序列对象来创建数组,如果传递的是多层嵌套的序列,将创建多维数组(下例变量中的c)
import numpy as np
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
c = np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])
数组的形状可以通过其shape属性获得,它是一个描述数组各个轴的长度的元组
a.shape
(4,)
b.shape
(4,)
c.shape
(3,4)
数组a的shape属性只有一个元素,因此它是一位数组。而数组c的shape属性有两个元素,因此它是二维数组,其中第0轴的长度是3,第1轴的长度为4.
还可以通过修改shape的属性,在保持数组元素个数不变的情况下,改变数组每个轴的长度。下面将数组c的shape属性改为(4,3)
c.shape = 6,2
print(c)
[[ 1 2]
[ 3 4]
[ 4 5]
[ 6 7]
[ 7 8]
[ 9 10]]
当设置某个轴的元素个数为-1时,将自动计算此轴的长度。由于数组c有12个元素,因此下面的程序将数组c的shape属性改为(2,6)
c.shape = 2,-1
print(c)
[[ 1 2 3 4 4 5]
[ 6 7 7 8 9 10]]
使用数组的reshape()方法,可以创建指定形状的新数组,而原数组的形状保持不变
d = a.reshape((2,2)) #也可以a.reshape(2,2)
print(d)
[[1 2]
[3 4]]
数组a和d其实共享数据存储空间,因此修改其中任意一个数组的元素都会同时修改另一个数组的内容。在下面的例子中,数组d中的2也被改为了100
a[1] = 100
print("array a is :",a)
print("array d is :",d)
array a is : [ 1 100 3 4]
array d is : [[ 1 100]
[ 3 4]]