科学计算库Numpy --数组(ndarray)

    xiaoxiao2021-04-18  49

    科学计算库Numpy – 数组(ndarray)

    学过其他强类型语言的朋友都知道数组是一种数据类型,它里面的元素必须是同一种类型,类似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]] '''

    数组的几个属性

    #程序上下文接上文 #数组的维数 print(arr.ndim) #2 #数组的形状 print(arr.shape)#(2, 3),返回一个元祖,一维就是(2,),二维(2,3)每个数就是所对应的轴方向的元素个数,一维就是元素数,二维就是行和列.... #元素个数 print(arr.size)#6,所有的元素个数 #元素数据类型 print(arr.dtype)#int64 ,64位整数 #一个元素所占的字节数 print(arr.itemsize)#8, 8个字节,8*8=64位 #数据所在内存缓冲区 print(arr.data)#<memory at 0x7fed6d866e48>

    数组的运算

    与单个元素进行运算

    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

    转载请注明原文地址: https://ju.6miu.com/read-674653.html

    最新回复(0)