① python基礎之numpy.reshape詳解
這個方法是在不改變數據內容的情況下,改變一個數組的格式,參數及返回值,官網介紹:
a:數組--需要處理的數據
newshape:新的格式--整數或整數數組,如(2,3)表示2行3列,新的形狀應該與原來的形狀兼容,即行數和列數相乘後等於a中元素的數量
order:
首先做出翻譯: order : 可選范圍為{『C』, 『F』, 『A』}。使用索引順序讀取a的元素,並按照索引順序將元素放到變換後的的數組中。如果不進行order參數的設置,默認參數為C。
(1)「C」指的是用類C寫的讀/索引順序的元素,最後一個維度變化最快,第一個維度變化最慢。以二維數組為例,簡單來講就是橫著讀,橫著寫,優先讀/寫一行。
(2)「F」是指用FORTRAN類索引順序讀/寫元素,最後一個維度變化最慢,第一個維度變化最快。豎著讀,豎著寫,優先讀/寫一列。注意,「C」和「F」選項不考慮底層數組的內存布局,只引用索引的順序。
(3)「A」選項所生成的數組的效果與原數組a的數據存儲方式有關,如果數據是按照FORTRAN存儲的話,它的生成效果與」F「相同,否則與「C」相同。這里可能聽起來有點模糊,下面會給出示例。
二、示例解釋
1、首先隨機生成一個4行3列的數組
2、使用reshape,這里有兩種使用方法,可以使用np.reshape(r,(-1,1),order='F'),也可以使用r1=r.reshape((-1,1),order='F'),這里我選擇使用第二種方法。通過示例可以觀察不同的order參數效果。
通過例子可以看出來,F是優先對列信息進行操作,而C是優先行信息操作。如果未對r的格式進行設置,那麼我們rashape的時候以「A」的順序進行order的話,它的效果和「C」相同。
3、我們將r的存儲方式進行修改,修改為類Fortan的方式進行存儲。並做與第2步類似的操作。
基礎操作樣例:
1.引入numpy,名稱為np
2.接下來創建一個數組a,可以看到這是一個一維的數組
3.使用reshape()方法來更改數組的形狀,可以看到看數組d成為了一個二維數組
4.通過reshape生成的新數組和原始數組公用一個內存,也就是說,假如更改一個數組的元素,另一個數組也將發生改變
5.同理還可以得到一個三維數組
reshape(-1,1)什麼意思:
大意是說,數組新的shape屬性應該要與原來的配套,如果等於-1的話,那麼Numpy會根據剩下的維度計算出數組的另外一個shape屬性值。
舉例:
同理,只給定行數,newshape等於-1,Numpy也可以自動計算出新數組的列數。
② python 原來需要輸入值給數組怎麼改成直接給數組賦值啊,就是弄成像圖二那樣的
1.首先,你要弄懂別人在幹嘛
③ Python中怎樣對數組中的值進行選擇性,調換位置的輸出。例如:a,b,c,d,e,f.輸出成為a,c,f,e.
#調換談拆位置的輸出
stin = ['A','B','C','D','E','F','G','乎侍鍵H','I','X']
inp = input('enter the sort:')
def change(pa):
file = open("D:\dir\a.txt","a")
pas = pa.split(',');
print(pas)
for i in pas:
print(stin[int(i)],end=" "歲巧)
file.write(stin[int(i)]+" ")
file.close()
change(inp)
在D盤創建D:\dir\a.txt 查看輸出
剛剛玩這個東西,期待高手指點
④ python用for循環怎麼給給數組賦值
思路:先定義一個數組(列表類型)出來,然後直接循環即可(需要用到列表的append函數),舉例代碼如下:
result_t = []
for i in range(1,5):
t = i
result_t.append(t)
⑤ Python中數組的基本操作
先定義一個數組列表:
列表合並也可以用+,但是用+的話,會產生一個新的列表(當然也可以賦值給任何的變數),而extend則只是修改了原來的對象
只讀數組,只能查看不能編輯,列表的切片操作同樣適於元組。
表達方式:tuple=("元素1","元素2","元素3"),中間同樣用,隔開
特殊的元組:tupleZero=()空元組
tupleOne=("元素1",) 只有一個元素,後面要跟一個,(注意好的習慣的養成)
作用:1.對於一些不想被修改的元素,可以放在元組裡面
2.元組可以在映射(和集合的成員)中當作鍵使用,而列表不行
3.元組作為內建函數和方法的返回值
enumerate(列表對象,返回標簽起始值(默認為零))
上面的例子可以看出,返回的i是一個元組,如果不想要元組的話,可以用兩個參數接收:
⑥ Python數組修改問題
a=[[0 ,0 ,40 ,60 ,255 ,255 ,255 ,255 ,255 ,255],
[1 ,0 ,48 ,68 ,255 ,255 ,255 ,255 ,255 ,255],
[2 ,0 ,38 ,66 ,255 ,255 ,255 ,255 ,255 ,255],
[3 ,0 ,39 ,80 ,255 ,255 ,255 ,255 ,255 ,255],
[4 ,0 ,39 ,67 ,255 ,255 ,255 ,255 ,255 ,255],
[15 ,0 ,20 ,255 ,255 ,255 ,255 ,255 ,255 ,255]]
a = [[s for s in x if s != 255] for x in a]
⑦ python 對一個數組的處理,如題:
defsplit(array):
group=[]
item=[]
forxinarray:
ifx!=0:
item.append(x)
eliflen(item)>0:
group.append(item)
item=[]
iflen(item)>0:
group.append(item)
returngroup
array=[0,2,0,0,34,4,3,2,0,0,0,0,4,2,3,0,0]
split(array)
⑧ python中怎麼對一個數組中不同值進行不同操作
python中的list和array的不同之處 list是列表,可以通過索引查找數值,但是不能對整個列表進行數值運算