本文主要是介绍【Python】比较新奇的用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、元组作为字典的键值
import numpy as npa = {}
a[tuple([1024,1024,3])] = np.zeros((2,4))print(a[(1024,1024,3)])
结果为:
array([[0., 0., 0., 0.],[0., 0., 0., 0.]])
我想应该是元组具有唯一性,所以可以被使用。
2、对数组中满足条件元素进行改值操作
import numpy as np
matrix = np.array([[0, 2, 4],[4, 5, 0],[0, 4, 0]])
matrix[matrix>2] = 100matrix的结果为:
array([[ 0, 2, 100],[100, 100, 0],[ 0, 100, 0]])
3、匿名函数和*号操作
import numpy as np
a = lambda x,y:np.array(x)+np.array(y)
b = [[1, 2, 3], [4, 5, 6]]
print(a(*b))结果为:
array([5, 7, 9])
4、字典先声明,后动态添加内容的用法
img = {'object': list()}
obj = {}
img['object'] += [obj]
obj['min'] = 0
obj['max'] = 1
print(img)
结果为:
{'object': [{'min': 0, 'max': 1}]}
5、从numpy数组中选取满足条件的值
a = np.array([[1, 2, 3],[3, 4, 5],[1, 2, 3]])
b = a[a>2]
print(b)结果为:
array([3, 3, 4, 5, 3])
6、删除list种的指定位置元素
a = [[1,2,3],[4,5,6],]
del a[0]
print(a)
结果为
[[4, 5, 6]]
python要删除一个列表中的某个元素,知道这个元素是什么但不知道它的索引,就可以用list.romove
7、一个列表存了很多个子列表,将重复的子列表删除,保留唯一的行数据
使用列表的属性可以如下:
import numpy as npdata = np.random.randint(3, size=(10000,12))
data = data.tolist()
data_c = []
for i in range(data.__len__()):if data[i] not in data_c:data_c.append(data[i])
但是当数据量特别大时,以上方法就不合适了,这时需要使用np.unique()
import numpy as np
import timedata = np.random.randint(3, size=(10000,12))start_time = time.time()
data_c_1 = np.unique(data, axis=0) ################################
tmp_time = time.time()
print(tmp_time-start_time)data = data.tolist()
start_time = time.time()
data_c = []
for i in range(data.__len__()):if data[i] not in data_c:data_c.append(data[i])
tmp_time = time.time()
print(tmp_time-start_time)
np.unique的时间为:0.017952442169189453
list的时间为:2.0116233825683594
8、一个数组是否被包含于另一个数组
import numpy as np
y1 = np.array([[1, 2], [1, 3], [1, 2], [2, 2]])
y2 = np.array([[100, 200], [100,300], [100, 200], [200, 200]])
z = np.array([1, 2])
print((y1 == z).all(1).any())
print((y2 == z).all(1).any())
这篇关于【Python】比较新奇的用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!