NumPy是Python科学计算中最为常用的库之一,主要用于处理大规模数据。其核心是ndarray(N-dimensional array,N维数组)对象,用于存储同质的数值型数据。这篇文章将讲述如何使用NumPy创建高效的数值数组,以及其常用的计算方法。
一、NumPy数组的创建
NumPy数组可以通过多种方式创建。最常用的方法是使用numpy.array函数,以下是一个示例:
import numpy as np
a = np.array([1, 2, 3, 4])
print(a)
输出结果为:
[1 2 3 4]
也可以通过如下方式创建多维数组:
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
输出结果为:
[[1 2 3]
[4 5 6]]
还可以使用其他函数来创建特定的数组,例如:
- numpy.zeros(shape, dtype=float):创建形状为shape的全0数组
- numpy.ones(shape, dtype=float):创建形状为shape的全1数组
- numpy.arange(start, stop, step, dtype=None):返回一维数组,从start到stop(不包括stop),步长为step
- numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):返回一维数组,从start到stop(包括stop),共num个元素
- numpy.random.rand(d0,d1,...,dn):创建形状为(d0,d1,...,dn)的随机浮点数数组
以下是通过以上函数创建数组的示例:
c = np.zeros((2, 3))
print(c)
d = np.arange(0, 10, 2)
print(d)
e = np.linspace(0, 1, 5)
print(e)
f = np.random.rand(2, 3)
print(f)
二、NumPy数组的属性和方法
NumPy ndarry类有很多属性和方法,以下是一些比较常用的:
- ndarray.ndim:表示数组的维度
- ndarray.shape:表示数组的形状(各维度大小)
- ndarray.size:表示数组的大小(元素总个数)
- ndarray.dtype:表示数组中元素的数据类型
- ndarray.itemsize:表示数组中每个元素的字节数
- ndarray.flatten():返回一个将多维数组变为一维数组的视图
- ndarray.transpose():返回数组的转置
- ndarray.clip(min,max):将数组中小于min的元素替换为min,大于max的元素替换为max
以下是对一些属性和方法的示例:
g = np.array([1, 2, 3, 4, 5])
print(g.ndim)
print(g.dtype)
print(g.size)
h = np.array([[1, 2, 3], [4, 5, 6]])
print(h.shape)
print(h.transpose())
i = h.flatten()
print(i)
j = np.array([1, 2, 3, 4, 5])
j = j.clip(2, 4)
print(j)
三、NumPy数组的运算
NumPy数组的快速运算是其最强大的特点之一。NumPy支持各种运算符,包括基本运算符(加、减、乘、除)和比较运算符。可以在两个数组之间进行运算,也可以在数组和标量之间进行运算。
以下是一些常用的数学函数,例如:
- numpy.sum(a, axis=None):返回数组中所有元素的总和
- numpy.mean(a, axis=None):返回数组中所有元素的平均值
- numpy.std(a, axis=None):返回数组中所有元素的标准差
- numpy.sqrt(a):返回数组中所有元素的平方根
以下是对一些数学函数的示例:
k = np.array([1, 2, 3, 4, 5])
l = np.array([2, 3, 4, 5, 6])
print(k + l)
print(k - l)
print(k * l)
print(k / l)
print(k < 3)
m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(m))
print(np.mean(m))
print(np.std(m))
print(np.sqrt(m))
四、NumPy数组的切片和索引
NumPy数组支持通过索引和切片对数组进行访问。下面是一些常用的示例:
n = np.array([1, 2, 3, 4, 5])
print(n[0])
print(n[1:4])
o = np.array([[1, 2, 3], [4, 5, 6]])
print(o[0, 1])
print(o[:, 0])
以上就是关于NumPy数组的创建、属性和方法、运算、切片和索引的介绍。