学过其他强类型语言的朋友都知道数组是一种数据类型,它里面的元素必须是同一种类型,类似python的列表,但是这种列表只能是同种元素。
用法numpy.array(list/tuple)
import numpy as np #重命名numpy为np arr = np.array([1,2,3,4,5,6])#创建一维数组 print(arr)#[1 2 3 4 5 6] arr = np.array([[1,2,3],[4,5,6]])#二维数组 print(arr) ''' [[1 2 3] [4 5 6]] '''与单个元素进行运算
a = np.array([1,2,3]) print(a+1)#[2 3 4] 每个元素都+1 print(a*2)#[2 4 6] 每个都乘2 #。。。其他运算都是相同的道理次方运算
print(a**2)#每个元素平方[1 4 9] print(a**0.5)#二分之一次方[ 1. 1.41421356 1.73205081]数组运算
b = np.array([1,2,3]) print(a+b)#[2, 4, 6]对应元素相加 #注意shape不同不能相运算(除单个元素这种情况) c = np.array([1,2]) print(b+c)#报错 ''' Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: operands could not be broadcast together with shapes (3,) (2,) ''' #单个元素的可以运算 c = array([1,]) print(b+d) #[2, 3, 4]sum([axis])函数,axis为以哪个轴为基准求和,不传入axis则所有元素求和,axis可以传入从0到ndim-1
#一维 a = np.array([1,2,3]) a.sum()#1+2+3 a.sum(axis=0) #1+2+3 一维只有一个轴(可以想象为坐标轴) ''' <-----按这个方向求和 [1,2,3] ''' #二维 b = np.array([[1,2],[3,4]]) b.sum()#1+2+3+4 b.sum(axis=0)#[1+3,2+4] ''' [1,2]↑按这个方向求和,每个行对应位相加 [3,4]| ''' b.sum(axis=1)#[1+2,3+4] ''' <---按这个方向求和,每个列对应位求和 [1,2] [3,4] '''一维数组的生成
参考文档 https://docs.scipy.org/doc/numpy-dev/user/quickstart.html