# NumPy是使用Python进行科学计算的基础软件包。除其他外,它包括:
# 功能强大的N维数组对象。
# 精密广播功能函数。
# 集成 C/C+和Fortran 代码的工具。
# 强大的线性代数、傅立叶变换和随机数功能。
# 完全平方差公式:(a-b)²=a²-2ab+b²
# 平方差公式:a²-b²=(a+b)(a-b)
# x = complex(1,2)
# y = x**2 # (-3+4j)
# NumPy Ndarray 对象
# NumPy 最重要的一个特点是其 N 维数组对象 ndarray,
import numpy as np
# 多于一个维度
# a = np.array([1,2,3])
# 最小维度
# b = np.array([1,2,3,4,5], ndmin=2)
# dtype 参数
# c = np.array([1, 2, 3], dtype = complex)
# a=np.arange(12).reshape((3,4))
# b=np.linspace(1,10,6).reshape(2,3)
# c=np.arange(4)
# d=np.array([[10,20,30,40]])
# e=np.array([[1,2,3],
# [4,5,6,]])
#两个矩阵相加减,即它们相同位置的元素相加减!
# 数乘矩阵A,就是将数乘矩阵A中的每一个元素,记为或.
# C的第行第列的元素由A的第行元素与B的第列元素对应相乘,再取乘积之和.
# a=np.array([[1,2],[3,4]])#sum对角线乘积的和
# np.sum(a)
# np.sum(a,axis)axis=0 行数求和 axis=1 列数求和
# print(np.min(a,axis=0))
# a=np.arange(2,14).reshape((3,4))
#np.argmin(a) 寻找a数组最小元素的索引值
#np.mean和np.average计算平均值
#np.average(a)或者a.average()
#np.median求中位数
#np.cunmsum累加的值
#np.diff累差的值
#np.nonzero输出非0的数
#np.sort逐行排序
#np.transpose转置矩阵 a.T效果等同
#np.clip(a,x,y)矩阵a小于5的都替换成5,大于9法人置换为9
#索引
# a=np.arange(3,15).reshape(3,4)
# a[1]默认索引第一行,
# a[1][1]索引第一行第一个元素 和a[1,1]效果一样
#合并
# a=np.array([1,1,1,1])
# b=np.array([2,2,2,2])
# np.vstack((a,b))向下合并
# np.hstack((a,b))左右合并
# a[:,np.newaxis]横向的序列变成纵向的序列 反之a[np.newaxis,:]
# np.concatenate((),axis=0)多个array合并,axis决定合并方向
#分割
# 1:等量分割
# a=np.arange(12).reshape((3,4))
# np.split(a,x,axis) a分割的对象,x分割的个数,axis分割方向(横向还是纵向)
# 2:不等量分割
# np.array_split(a,x,axis)
#其他分割
# np.vsplit()纵向分
# np.hsplit()横向分割
#赋值
a=np.arange(4)
b=a
c=a
d=a.copy()
a[2]=3
# print(a,b,c,d) [0 1 3 3] [0 1 3 3] [0 1 3 3] [0 1 2 3]
# 赋值过后,只要a值改变,b,c值都改变
#copy不改变a的值,copy不包括地址,赋值包括地址