# 1、安装包# pip install numpy #原生python安装# conda install numpy #Anaconda的安装
# 使用Numpyimport numpy as np a = np.arange(15) #生成0-14的一维数组display(a)
display( )和print( )都是打印,在大多数编程软件上都使用print,jupyter notebook中我们可以使用display来打印,打印更美观.
基础属性
NumPy的数组类被调用ndarray
。ndarray
对象更重要的属性有:
ndarray.ndim - 数组的轴(维度)的个数。
ndarray.shape - 数组的维度。这是一个整数的元组,表示每个维度中数组的大小。对于有 n 行和 m 列的矩阵,shape 将是 (n,m)。因此,shape 元组的长度就是rank或维度的个数 ndim。
ndarray.size - 数组元素的总数。等于 shape 的元素的乘积。
ndarray.dtype - 描述数组中元素类型的对象。例如numpy.int32、numpy.int16和numpy.float64。
ndarray.itemsize - 数组中每个元素数据类型的字节大小。例如,元素为 float64 类型的数组的 itemsize 为8(=64/8)。等于 ndarray.dtype.itemsize 。
ndarray.data - 该缓冲区包含数组的实际元素。
import numpy as np #生成一个4行5列的2维数组a = np.arange(20).reshape(4, 5)display(a)
print(a.ndim) #输出几维数组print(a.shape) #输出有 n 行和 m 列的矩阵print(a.size) #输出有n个元素print(a.dtype) #输出元素的数据类型print(a.dtype.name) #输出元素的数据类型print(type(a)) #输出a是什么类型print(a.itemsize) # 输出元素类型字节大小,int型=4print(a.data) #该缓冲区包含数组的实际元素,基本不用
数组创建
import numpy as np# 创建一维数组a = np.array([1,3,5,7]) display(a)b = np.arange(1,8,2)display(b)c = np.array([1,3,5,7], dtype=complex)display(c)
import numpy as np# 创建2维数组a = np.array([[1,2,3,4],[5,6,7,8]])display(a)b = np.array([(1,2,3,4),(5,6,7,8)])display(b)c = np.arange(1,9).reshape(2,4)display(c)
函数zeros创建一个由0组成的数组,函数 ones创建一个完整的数组,函数empty 创建一个数组,其初始内容是随机的,取决于内存的状态。默认情况下,创建的数组的dtype是 float64 类型的。
a= np.zeros( (3,4) )b= np.ones( (2,3,4), dtype=np.int16 ) c =np.empty( (2,3) )display(a,b,c)
import numpy as npfrom numpy import pi# 等差数组a = np.linspace( 0, 2, 9 )print(a,'\n')#数学函数pi=3.14.....b = np.linspace( 0, 2*pi, 10 )print(b,'\n')#数学函数sin()c = np.sin(b)print(c)
数组运算
乘积运算符*在NumPy数组中按元素进行运算。矩阵乘积可以使用@运算符(在python> = 3.5中)或dot函数或方法执行
元素乘法/矩阵乘法
import numpy as np# 创建一维数组a = np.array([1,3,5,7]) display(a)b = np.arange(1,8,2)display(b)print(a*b,'\n')print(a&b,'\n')print(a.dot(b))
import numpy as np# 创建2维数组a = np.array([[0,2,3,4],[1,3,5,7]])display(a)b = np.array([(1,2,3,4),(5,6,7,8)])print(b,'\n')# 对应元素相乘print(a*b,'\n')# 矩阵相乘print(a&b)
加减乘除求余
import numpy as np# 创建2维数组a = np.array([[0,2,3,4],[1,3,5,7]])print(a,'\n')b = np.array([(1,2,3,4),(5,6,7,8)])print(b,'\n')print(sum(a),'\n')print(a + b,'\n')print(a - b,'\n')print(a / b,'\n')print(a % b,'\n') #求余print(a * b,'\n')print(a & b) #矩阵乘法
整体聚合
import numpy as npa = np.random.random((2,3))print(a)print(a.sum()) #求和print(a.max()) #最大print(a.min()) #最小print(a.size) #数量print(a.mean())#均值
指定数组方向计算
通过指定axis 参数[1/0],可以沿数组的指定轴应用操作
import numpy as npa = np.array([(1,2,3,4),(2,4,6,8),(1,3,5,7),(4,5,6,7)])display(a)display(a.sum(axis=0))display(a.mean(axis=0))display(a.max(axis=0))display(a.min(axis=0))display((a*0+1).sum(axis=0))display(a.shape) #有n行,m列
import numpy as npa = np.array([(1,2,3),(2,4,6),(1,3,5),(4,5,6)])display(a)display(a.sum(axis=1))display(a.mean(axis=1))display(a.max(axis=1))display(a.min(axis=1))display((a*0+1).sum(axis=1))display(a.shape) #有n行,m列
更多计算函数参看官方文档: https://www.numpy.org.cn/user/quickstart.html
关注公众号,下一文,我们一起学习numpy的索引/切片/迭代/形状操纵等知识