python數組排列
㈠ 在python中,怎麼根據數組a對數組b進行排序
# 以數組 a 的從小到大的順序為基準,對數組b進行重排序,並返回排序結果的索引數
import numpy as np
a = np.array([0,1,3,2,6,4,5])
b = np.array([0,1,2,3,4,5,6])
index = np.lexsort((b, a))
㈡ python中有沒有直接對多維數組排序的方法
直接用numpy的lexsort就可以
import numpy as np
data = np.array([[1,2,3,4,5], [1,2,3,6,7], [2,3,4,5,7], [3,4,5,6,7], [4,5,6,7,8]])
idex=np.lexsort([-1*data[:,2], data[:,1], data[:,0]])
#先按第一列升序,再按第二列升序,再按第三列降序
#注意先按後邊的關鍵詞排序
sorted_data = data[idex, :]
㈢ Python對數據進行排序-中英文
sort_values(by,axis=0,ascending=True,inplace=False,kind='quicksort',na_position='last')
參數說明:
by: 可以填入字元串或者字元串組成的列表。也就是說, 如果axis=0,那麼by="列名";如果axis=1,那麼by="行名"。
axis: {0 or 『index』, 1 or 『columns』}, default 0,意思就是如果 axis=0,就按照索引排序,即縱向排序;如果axis=1,則按列排序,即橫向排序。默認是axis=0 。
ascending: 輸入布爾型, True是升序 , False是降序 ,也可以可以是[True,False],即第一個欄位升序,第二個欄位降序 。
inplace : 輸入布爾型,是否用排序後的數據框替換現有的數據框
kind: 排序的方法,{『quicksort』, 『mergesort』, 『heapsort』},默認是使用『quicksort』。這個參數用的比較少,大家可以試一試。
na_position : {『first』, 『last』}, 缺失值的排序 ,也就說決定將缺失值放在數據的最前面還是最後面 。first是排在前面,last是排在後面,默認是用last 。
例子:
scores= pd.DataFrame([[87,56,85],[46,87,97],[34,65,86]],columns=['jack', 'rose', 'mike'])
scores
1.對『rose』這一列進行降序排序:
df_sc=scores.sort_values(by='rose',ascending=False)
df_sc
2.對第0行進行升序排序:
scores.sort_values(by=0,axis=1,ascending=True)
3.第1行進行升序,第0行進行降序:
scores.sort_values(by=[1,0],axis=1,ascending=[True,False]
4.觀察數據
data.head:
查看數據的前五行。
data.tail:
查看數據的後五行。
data.shape :
查看矩陣或數組的維數,或者是說數據表的結構(有幾行幾列)。
data.info :
查看數據的基本信息,如:數據類型、缺失值數量等。
#brand目標:中文-中英-英文
2.1 包含中文,純英文
for i in range(0,len(file1)):
result = re.compile(u'[\u4e00-\u9fa5]')
contents = file1['brand'][i]
match = result.search(contents)
if match:
file1.loc[i,['index1']]=0 #0為包含中文
else:
file1.loc[i,['index1']]=1 #1為純英文
2.1 包含英文,純中文
for i in range(0,len(file1)):
file1.loc[i,['index2']]=len(re.findall('[a-zA-Z]+', file1['brand'][i]) ) #0為純中文,1為包含英文
㈣ 對Python中數組的幾種使用方法總結
對Python中數組的幾種使用方法總結
今天小編就為大家分享一篇對Python中數組的幾種使用方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
二維數組的初始化
matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))]
就將其初始化為一個與matrix相同大小的元素全為 0 的矩陣
數組的多級排序
在數組 idea_collect = [[3, 1, 2], [3, 2, 1], [3, 2, 2], [3, 1, 1]] 中, 先按照第二項排列, 再按照第三項倒序排列 可寫為:
idea_collect.sort(key=lambda x: (x[1], -x[2]))
其中, x[1] 代表第二項正序排列, -x[2] 代表第三項倒序排列
排列結果為 [[3, 1, 2], [3, 1, 1], [3, 2, 2], [3, 2, 1]]
在一個 class 中多個函數不傳參使用同一個數組
如例所示:
class Partition:
def __init__(self):
self.num_complete = []
def partition(self, num, start, end):
self.num_compelete = num
def partition_core(self):
del self.num_compelete[0]
其中,self.num_compelete就是 class 中兩個函數同時可以直接調用的數組, 不過最好先在def __init__中聲明這個數組
以上這篇對Python中數組的幾種使用方法總結就是小編分享給大家的全部內容了
㈤ python數組的使用
1、Python的數組分三種類型:
(1) list 普通的鏈表,初始化後可以通過特定方法動態增加元素。定義方式:arr = [元素]
(2) Tuple 固定的數組,一旦定義後,其元素個數是不能再改變的。定義方式:arr = (元素)
(3) Dictionary 詞典類型, 即是Hash數組。定義方式:arr = {元素k:v}
2、下面具體說明這些數組的使用方法和技巧:
(1) list 鏈表數組
a、定義時初始化
a = [1,2,[1,2,3]]
b、定義時不初始化一維數組:
arr = []
多維數組: arr = [i for i in range(10), 1,[]] #注意, i for in xx 這個必須放在第一個位置,否則要先定義i,
如:
arr = [i for i in range(5), j for j in range(5), []]
這是錯誤的
這是正確的
c、del 語句和 : 的用法
可以用 start : end 表示數組里的一個區間 ( i >= start and i < end)
del 刪除數組里的指定元素
如:
d、遍歷數組:
e、增加元素:
一維 arr.append('aaa')
二維 arr[0].append('aaa')
如果要在任意位置插入用 arr.insert(n, 值)
此外還有一種特殊的用法是:
arr += [數組元素]
在不指定下標的情況下,是允許用 += 增加數組元素的。
(2) Tuple 固定數組Tuple 是不可變 list,一旦創建了一個 tuple 就不能以任何方式改變它。
下面拿具體示例說明:
Tuple 沒有的方法:
[1] 不能向 tuple 增加元素,沒有 append 、 extend 、insert 等方法。
[2] 不能從 tuple 刪除元素,沒有 remove 或 pop 方法。
[3] 不能在 tuple 中查找元素,沒有 index 方法(index是查找而不是索引,索引直接用下標即可,如:t[0])。
使用 tuple 的好處:
Tuple 可以轉換成 list, 反之亦然。
轉換方式為:
反之:
(2) Dictionary (哈希數組)詞典數組
*Dictionary 的用法比較簡單,它可以存儲任意值,並允許是不同類型的值,下面實例來說明:
*下面例子中 a 是整數, b 是字元串, c 是數組,這個例子充分說明哈希數組的適用性。
*可以直接增加一個元素,如果同名,則會改變原來的key的元素的值
*輸出所有的key
*輸出所有的value
*遍歷數組
㈥ python 二維數組排序
python有自帶的sorted函數。
sorted 語法:
sorted(iterable, key=None, reverse=False)
iterable -- 可迭代對象。
key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。
比如,對二維數組按照第一個元素排序:arr = list(sorted(arr, key=lambda x: x[0]))
㈦ 如何在Python中指標排序的數組問題,怎麼解決
方法有兩個:
1.使用列表的sort方法從小到大,再用reverse方法翻轉
其他類型數組方法一樣,都用list()就行
㈧ python 怎麼將一個數組逆序輸出
reverse()直接就把數組逆序了,只需要輸出的話就這樣好了:
a
=[1,2,3,4,5,6]
size=len(a)
for
i
in
xrange(size-1,-1,-1):
print
a[i]
㈨ python怎麼實現數組排序
#合成一個字典
ab=dict(zip(a,b))
#根據字典的鍵進行排序(也就是第一個列表);也可以根據第二個列表進行排序。
#具體是升序還是降序,自己挑著來。
ab_order=sorted(ab.items(),key=lambdax:x[0],reverse=
False)
㈩ python 數組排列的問題。
importre
importdatetime
r0=re.compile(r'd{4}s+d{1,2}s+d{1,2}s+d+:d+:d+')
array=['a"asdf"2013102813:24:56','b"bnmv"201282916:28:09','c"cxzb"201282916:20:19']
printsorted(array,key=lambdax:datetime.datetime.strptime(r0.findall(x)[-1],'%Y%m%d%H:%M:%S'))
我說怎麼老報錯,你給的數據竟然出現了79秒,這。。。