python划简技巧sort, index, set

有时查找、排序等常用功能,我们习惯for循环,其实有很多python自带的方法可以简洁的实现。

排序

f=[1,3,4,1,8,5]
f.sort()

1, 1, 3, 4, 5, 8

f2 = np.random.permutation(10)
f2 = np.sort(f2)

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

查找/索引

knights = ['we', 'are', 'the', 'knights', 'we', 'are', 'champion']
knights.index('we')
knights.sort(key=len)

0 (注意该方法只返回第一个满足条件的)

'we', 'we', 'are', 'the', 'are', 'knights', 'champion'

label = np.array([1,0,1,1,1,0,0,1,0,0,0,0,0,0,1])
f3 = np.argwhere(label > 0)
f3=np.squeeze(f3)

array([ 0,  2,  3,  4,  7, 14])

data = np.random.randn(3,3)
f4=data>0
data[f4]=1

f4

array([[ True,  True, False],
       [ True, False, False],
       [False, False, False]])

data

array([[ 1.        ,  1.        , -1.04329905],
       [ 1.        , -1.56508501, -1.00704463],
       [-0.4731849 , -0.7953748 , -0.32791971]])

去重

mylist = [1, 1, 2, 3, 4, 'ok','ok']
a=set(mylist)
type(a)
mylist=list(a)

set

[1, 2, 3, 4, 'ok']

data = np.array([[1,8,3,3,4],
                 [1,8,9,9,4],
                 [1,8,3,3,4]])
 #删除整个数组的重复元素      
uniques1 = np.unique(data)
 #删除重复行      
uniques2 = np.unique(data,axis=0)
 #删除重复列
uniques3 = np.unique(data,axis=1)

print(uniques1,'\n','\n',uniques2,'\n','\n',uniques3)

[1 3 4 8 9]
 
 [[1 8 3 3 4]
 [1 8 9 9 4]]
 
 [[1 3 4 8]
 [1 9 4 8]
 [1 3 4 8]]

更多数学原理小文请关注公众号:未名方略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞行codes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值