ndarray对象——创建

首先需要创建数组才能对其进行运算和操作。可以通过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]]


你可能感兴趣的:(NumPy使用)