当前位置: 首页 > 后端技术 > Python

NumPy获取唯一元素、出现次数、展平数组

时间:2023-03-26 00:02:43 Python

1如何获取唯一元素和出现次数使用np.unique可以轻松找到数组中的唯一元素。例如,如果从这个数组开始:>>>a=np.array([11,11,12,13,14,15,16,17,12,13,11,14,18,19,20])将使用np.unique打印数组中的唯一值:>>>unique_values=np.unique(a)>>>print(unique_values)[11121314151617181920]得到NumPy数组中唯一值的索引(数组中唯一值的第一个索引位置),只需要在np.unique()中传递return_index参数即可:>>>unique_values,indices_list=np.unique(a,return_index=True)>>>print(indices_list)[0234567121314]可以将np.unique()中的return_counts参数连同数组一起传递,得到一个NumPy中唯一值的频率计数大批。>>>unique_values,occurrence_count=np.unique(a,return_counts=True)>>>print(occurrence_count)[3222111111]这也适用于二维数组!如果从这个数组开始:a_2d=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[1,2,3,4]])唯一值可以通过:>>>unique_values=np.unique(a_2d)>>>print(unique_values)[123456789101112]如果没有轴传入的参数,二维数组会被展平。如果您想获得唯一的行或列,请确保传递axis参数。要查找唯一行,请指定axis=0,对于列,请指定axis=1>>>unique_rows=np.unique(a_2d,axis=0)>>>print(unique_rows)[[1234][5678][9101112]]要获取唯一行、索引位置和出现次数,您可以使用:>>>unique_rows,indices,occurrence_count=np.unique(...a_2d,axis=0,return_counts=True,return_index=真)>>>打印(unique_rows)[[1234][5678][9101112]]>>>打印(索引)[012]>>>打印(occurrence_count)[211]2重塑和展平多维数组展平数组的常用方法有两种:.flatten()和.ravel()。两者之间的主要区别在于,使用ravel()创建的新数组实际上是对父数组的引用(即“视图”)。这意味着对新数组的任何更改也会影响父数组。因为ravel不创建副本,所以它非常节省内存。如果你从这个数组开始:>>>x=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])你可以使用“flatten”将数组展平为一维数组>>>x.flatten()array([1,2,3,4,5,6,7,8,9,10,11,12])当使用“flatten",对新数组的更改不会更改父数组。>>>a1=x。flatten()>>>a1[0]=99>>>print(x)#原始数组[[1234][5678][9101112]]>>>print(a1)#Newarray[9923456789101112]但是在使用ravel时,对新数组所做的更改将影响父数组。例如:>>>a2=x.ravel()>>>a2[0]=98>>>print(x)#原始数组[[98234][5678][9101112]]>>>print(a2)#newarray[9823456789101112]最近整理了上百G的Python学习资料,包括入门电子书、教程、源码等,免费分享给大家!想上“Python编程学习圈”,发“J”免费领取