摘要: 标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计...
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3]
,需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。此外Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。
NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:
ndarray
(N-dimensional array object)和ufunc
(universal function
object)。ndarray
(下文统一称之为数组)是存储单一数据类型的多维数组,而ufunc
则是能够对数组进行处理的函数。
简单的示范
import numpy as np
a = np.arange(10)
print(a)
a.reshape(2,5)
print(a)
print(a.dtype)
print(a.shape)
print(a.ndim)
print(a.size)
print(type(a))
创建Array
使用array函数,从Python列表或元组中创建
import numpy as np
a = np.array([2,3,4])
print(a)
print(a.dtype)
b = np.array([1.2, 4.6, 7.8])
print(b)
print(b.dtype)
c = np.array([(1,2,3), (4,5,6)])
print(c)
print(c.dtype)
创建复数数组
d = np.array( [ [1,2], [3,4] ], dtype=complex )
print(d)
print(d.dtype)
使用numpy中的函数来创建数组 创建全是0的数组
e = np.zeros((3,4))
print(e)
print(e.dtype)
创建全是1的数组
f = np.ones( (2,3,4), dtype=np.int16 )
print(f)
print(f.dtype)
使用随机数来填充
g = np.empty( (2,3) )
print(g)
print(g.dtype)
创建序列
h = np.arange( 10, 30, 5 )
print(h)
i = np.arange(0,2,0.3)
print(i)
j = np.linspace(0,2,9)
print(j)
print(len(j))
打印数组
打印numpy数组与Python列表基本一样,但有些差别。
print(np.arange(10000))
print(np.arange(10000).reshape(100,100))