#运算
import numpy as np
#列表相乘
# ll=[1,2,3,4,5]
# ll2=ll*2 # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
# print(ll2)
# 列表相加
# ll3=[1,2,3,4,5]
# ll4=ll3+10 #报错,不能这样用
# print(ll4)
#numpy中数组相加
# nparr1=np.arange(0,10)
# print(nparr1) # [0 1 2 3 4 5 6 7 8 9]
# print(nparr1+10) # [10 11 12 13 14 15 16 17 18 19] 每个元素加,可以加
# print(nparr1*10) # [ 0 10 20 30 40 50 60 70 80 90] 每个元素乘,可以乘
# nparr2=np.arange(0,10).reshape(2,5)
# print(nparr2)
# print(nparr2*10)
# print(nparr2+10)
# 以上都可以,它的运算都直接进去对每个元素进行运算了
#举例np的通用函数
# nparr3=np.arange(-10,3)
# print(nparr3)
# print(np.abs(nparr3)) #不改变原数据,
# print(nparr3)
#数组的逻辑运算,这要用到三个数组
# nparr4=np.array([1,2,3,4,5])
# nparr5=np.array([6,7,8,9,10])
# nparr6=np.array([True,True,False,False,True])
# nparr7=[(x if z else y) for x,y,z in zip(nparr4,nparr5,nparr6)]
# print(nparr7) # [1, 2, 8, 9, 5] 数据类型变为list了。
# print(type(nparr7))
# #np.where()函数能实现上面的运算
# nparr8=np.where(nparr6,nparr4,nparr5)
# print(nparr8) # [1 2 8 9 5]
#where()函数的其它用法,条件选择函数
# nparr9=np.random.randn(5,5)
# print(nparr9)
# print("______________________")
# nparr10=np.where(nparr9>0,1,-1) #里面就是条件,前面条件为直,变为1,为假变为-1,不改变原数据
# print(nparr10)
# print("______________________")
# print(nparr9)
#来,继续挖where的用法,多条件选择,即np.where的嵌套使用
# nparr11=np.random.randint(10,40,size=(4,4))
# print(nparr11)
# #要求,大于10的数标2,大于20的数标3,大于30的数标4
# nparr12=np.where(nparr11>=30,4,np.where(nparr11>=20,3,2))
# print(nparr12)
# 统计运算
nparr13=np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
# print(nparr13)
# print(nparr13.sum()) #求所有元素的和
# print(nparr13.sum(axis=0)) #y轴的和组成的数组
# print(nparr13.mean()) #求所有元素的平均数
# print(nparr13.mean(axis=1)) #0=y轴平均,1=x轴平均
# print(nparr13.std()) #标准差
#什么是标准差
"""
标准差(Standard Deviation) ,中文环境中又常称均方差,是离均差平方的算术平均数的平方根,
用σ表示。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。
平均数相同的两组数据,标准差未必相同。
"""
# nparr14=np.array([[1,2,3,4],
# [5,6,7,8],
# [9,10,11,12]])
# print(nparr14.max(axis=1)) #最大max(),最小min(),都可以加axis轴,axis可以省略
# # print(nparr14.argmax()) #最大值索引
# print(nparr14.cumsum()) #[ 1 3 6 10 15 21 28 36 45 55 66 78]累计和,有意思,前几个相加得下一个数
# print(nparr14.cumsum(0)) #axis可以省略,直接0或1即可
# print(nparr14.cumprod()) #累计积,同上面累计和同
#排序
# nparr15=np.array([[1,8,3,4],
# [5,6,7,4],
# [9,1,11,2]])
# print(nparr15)
# # nparr15.sort() #排序,改变了原数据,多维默认x轴排序
# nparr15.sort(0) #排序,改变了原数据,多维默认x轴排序,0表y轴排
# print(nparr15)
#集合运算
#一维数组的集合运算,提供了唯一,也就是去重运算unique
# nparr16=np.array([1,2,3,2,4,6,18,6,22,15,15,18])
# print(nparr16)
# nparr17=np.unique(nparr16) #不改变原数据,去重,还从小到大排好了序
# print(nparr16)
# print(nparr17)
# nparr19=np.array([[1,8,3,4],
# [5,6,7,4],
# [9,1,11,2]])
# nparr20=np.unique(nparr19) #多维的话,就转成了一维,也去重了。[ 1 2 3 4 5 6 7 8 9 11]
# print(nparr20)
"""
#集合运算:
unique() 唯一值,去重
intersectld() 公共元素
unionld() 并集
inld() 是否存在,返回 bool 值
setdiffld() 集合的差
setxorld() 交集取反
"""
#线性代数: 买本书来学习
原文地址:https://www.cnblogs.com/yiyea/p/11441755.html