numpy总结

1.对array中的每一个元素做处理

使用for循环的速度较慢,使用numpy中的内置函数.numpy中内置函数很多,基本可以处理大部分事情.

如果不能用内置函数处理,可以自定义numpy逐元素处理函数:

#0设置普通函数(zero矩阵)
def copyshape(a):
    return np.zeros_like(a)
ucopyshape = np.frompyfunc(copyshape,1,1)
f = np.mat('1 2;3 4')
ucopyshape(f)
matrix([[0, 0],
        [0, 0]], dtype=object)
#1.自定义函数,返回所有元素的平方,传入一个,传出一个
def square(a):
    return a**2
usquare = np.frompyfunc(square,1,1)
usquare(np.mat('1 3 5 7'))
matrix([[1, 9, 25, 49]], dtype=object)
#2.自定义函数,返回两个矩阵对应位的平方和,传入2个,输出1个
def square_add(a,b):
    return a**2 + b**2
usquare_add = np.frompyfunc(square_add,2,1)
g1 = np.mat('1 2 3 4')
g2 = np.mat('6 7 8 9')
usquare_add(g1,g2)
matrix([[37, 53, 73, 97]], dtype=object)
#3.第一个返回平方,第二个返回立方
def square_cubic(a,b):
    return a**2,b**3
usquare_cubic = np.frompyfunc(square_cubic,2,2)
usquare_cubic(np.mat('1 2 3'),np.mat('4 5 6'))(matrix([[1, 4, 9]], dtype=object), matrix([[64, 125, 216]], dtype=object))

参考:https://zhuanlan.zhihu.com/p/50452788

2.numpy中的nan值也可以使用,这样所有与nan操作的值都为nan,可以用来处理需要忽略的值

3.numpy中只取某几行,某几列

3. numpy中mask的处理,可以用mask表示一部分不参与运算的元素(mask为True的地方不参与运算)
x1 = np.random.randint(1,10,(1,30))
mask=x1>5
mask_x1=np.ma.array(x1,mask=mask) 
mask为True的区域都不参与运算
mask可以相加,mask1+mask2中只要有一个为True,结果就为True
mask_x1中有data属性和mask属性,data是我们初始化mask_x1的数据,mask是我们初始化mask的数据


5.numpy的显示和保存

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值