如何交換數(shù)組np.arange(9).reshape(如何交換數(shù)組np.arange(9))
如何交換數(shù)組np.arange(9).reshape
import numpy as npa=np.arange(9).reshape(3,3)12 a Out[31]: array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])12345 矩陣的某一行 a[1]Out[32]: array([3, 4, 5])12 矩陣的某一列 a[:,1]Out[33]: array([1, 4, 7])12 b=np.eye(3,3) b Out[36]: array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]])1234567 把矩陣a的第2列賦值給矩陣b的第1列 b[:,0]=a[:,1] b Out[38]: array([[ 1., 0., 0.], [ 4., 1., 0.], [ 7., 0., 1.]])
如何交換數(shù)組np.arange(9)
1. np.array 可將序列對象(如列表和元包)轉(zhuǎn)換為數(shù)組,可以生成一維或多維數(shù)組,生成多維數(shù)組時(shí)要對齊。
a = [[1,2,3],[4,5,6]]b = np.array(a)
2. 數(shù)組與列表的相互轉(zhuǎn)換
a = np.ones((2,2))b = a.tolist() # 數(shù)組轉(zhuǎn)列表c = [[1,2,3],[4,5,6]]d = np.array(c) # 列表轉(zhuǎn)數(shù)組e = [1,2,3],[4,5,6]g = np.array(e) #元組轉(zhuǎn)數(shù)組
3. 低精度和高精度一起,會轉(zhuǎn)換為高精度的
a = np.array((1,2.1,3,4,5,6))b = a.reshape(2,3)print(a.shape, a.dtype)
4. np.arange(n) 生成一維從0到n-1的向量,可以設(shè)定范圍和步長,如np.arange(1,10,2)。Python 內(nèi)置的range生成從0到n-1的列表,一般只用于for循環(huán)中。
a = np.arange(15)for i in range(15): print(i)
5. np.ones .zeros .empty 里面需要傳 入一個(gè)元組或列表,來指定創(chuàng)建什么形狀,同時(shí)可以指定數(shù)據(jù)類型dtype。
a = np.ones((2,2), dtype = int)b = np.zeros(10)
6. np.astype 實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換,string類型的數(shù)字(如'123')也可以轉(zhuǎn)換為int。
a = np.array((1,2,3,4))print(a.dtype)b = a.astype(np.float64)print(b.dtype)
7. 大小相等的數(shù)組之間的任何運(yùn)算都會元素級的,特別注意數(shù)組之間的乘法是元素級的,要實(shí)現(xiàn)矩陣乘法,需要用np.dot。
8. 數(shù)組的切片是原始數(shù)組的視圖,數(shù)據(jù)在賦值時(shí)不會復(fù)制,想要復(fù)制數(shù)據(jù),需要在切片后加.copy()
9. 數(shù)組切片用方括號[ ],切片的形式為[start:end:step], 在切片時(shí)起點(diǎn)和終點(diǎn)至少要指定一個(gè)。不指定的部分,表示一直到索引最開始或者最后。-1 可以表示最后一個(gè)元素,:表示復(fù)制原列表。索引有幾種形式,如[1,2], [:,3],[:2,3:] 注意索引的結(jié)尾數(shù)要減1,開頭不需要。還有花式索引,a[[1,2,3]] 取對應(yīng)的行,a[:,[1,2,3]]取對應(yīng)的列,花式索引會復(fù)制數(shù)據(jù),注意a[[1,2,3],[1,2,3]] 取的是3個(gè)對應(yīng)位置的數(shù)字。進(jìn)行反向索引時(shí),要在數(shù)字前全部加負(fù)號,如[-2: -10:-1] 表示取向量的倒數(shù)第2個(gè)到倒數(shù)第10個(gè),步長為2; [-1::-1] 表示從最后一個(gè)按照步長為1一直取到第1個(gè)。
a = np.arange(30).reshape(6,5)b = a[:2,3:]c = a[[1,5,2]]d = a[:,[3,4,1]]
a = b[b[:,0] == c, :] ## 取出某列中所有滿足特定值的所有行,此式子為取出b中第0行里所有值等于c的所有行
a = b[~b[:,0] == c, :] ## 反轉(zhuǎn),取出所有不滿足該條件的
10. 數(shù)組之間的拼接有兩種方法,hstack,vstack分別對應(yīng)行拼接和列拼接;concatenate里axis=0對應(yīng)列軸,=1對應(yīng)橫軸。hsplit, vsplit以及split(與concatenate對應(yīng))實(shí)現(xiàn)矩陣的指定份數(shù)的均等分。
a = np.ones((1,2))b = np.zeros((3,2))c =np.ones((3,3))d = np.hstack((b,c))e = np.concatenate((b,c),axis = 1)f = np.vstack((a,b))g, h, i = np.hsplit(c, 3)
11. 數(shù)組中最小最大元素的索引:np.argmin,np.argmax;數(shù)組中最小最大的元素:np.max,np.min。
a = np.arange(30).reshape(6,5)b = np.argmax(a)
12. Python內(nèi)置zip函數(shù),可以將多個(gè)可迭代對象中對應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表,當(dāng)所有對象長度不一致時(shí),以短的為主。
a = np.array((1,2,3))b = np.array((4,5,6))c = zip(a,b)for i, j in zip(a,b):print(i,j)
13. numpy.where(conditon[, x, y]) 條件邏輯表達(dá)式,方括號內(nèi)可省去,如果條件為true,則其值取x,否則取y。 如果只有條件,則范圍條件中非0元素的索引。其等效為 value = x if c else y for c, x, y in zip(condition, xarr, yarr)。
xarr = np.array([1.1, 1.2, 1.3, 1.4])yarr = np.array([2.1, 2.2,2.3, 2.4])condi = np.array([True, False, True, False])value = np.where(condi, xarr, yarr)
14. 基礎(chǔ)數(shù)學(xué)和統(tǒng)計(jì)方法中,sum,mean, std, var(方差), min, max, argmin, argmax (arg系列返回最值的索引), cumsum等可以分別針對數(shù)組整體,以及axis = 0 (y軸,向), = 1 (x軸, 橫向)進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。
a = np.random.randn(5,5) # 正態(tài)分布隨機(jī)數(shù)b = np.argmin(a)c = np.argmin(a, axis = 0)d = a.argmin(axis = 1)
15. 對布爾型數(shù)組的方法, Python里0與False, 非0元素與True對應(yīng),針對布爾型數(shù)組的方法有,sum統(tǒng)計(jì)true的個(gè)數(shù),實(shí)質(zhì)對0與1的求和,any判斷是否有true, all判斷是否全為true。
a = np.array([False, True, False, False])print(a.sum())print(a.any())print(a.all())
16. sort對指定軸進(jìn)行從小到大的排序, argsort 是間接排序、返回?cái)?shù)值從小到大的索引
a = np.random.randn(5,3)b = np.sort(a) # 默認(rèn)axis=0b2 = np.sort(a, axis = 0) b3 = np.sort(a, axis = 1)
17. 唯一化和集合邏輯: unique返回矩陣中唯一值的序列(即所有出現(xiàn)過元素的序列),python內(nèi)置的set只能針對向量,返回向量中的唯一值序列,該序列只能作為迭代序列,一般用于for循環(huán)等迭代中。intersect1d(x,y) x與y的交集, union1d(x,y) x與yd的并集, in1d(x,y) x中的元素是否在y集合中, setdiff1d(x,y) 集合差 setxor1d(x,y)異或。
a = np.array(('Bob','Alice','Joe','Will','Bob','Joe'))b = np.unique(a)a2 = np.array((1,2,3,4,2,3,1,5,3,2,6,5,7,6,4))b2 = np.unique(a2)a3 = np.array([[1,2,3],[2,3,4],[1,2,4]])b3 = np.unique(a3)for item in set(a2):print (item)
18. 線性代數(shù)操作, 主要方法有dot(點(diǎn)乘), diag(返回方陣對角元素), trace(返回方陣的跡), det(行列式), eig(f方陣特征值和特征向量), inv(方陣的逆), pinv(廣義逆), qr(QR分解), svd(奇異值分解), slove(解方程AX=B)。
19. 在Anconda中,針對向量和數(shù)組的處理是不同的,向量不分行向量和列向量,形式為size a(3, ) 是長度為3的向量;數(shù)組為size a(3,1)。在編程時(shí),要注意區(qū)分,最好把向量轉(zhuǎn)為數(shù)組。
如何交換數(shù)組的兩行
charstr1[20],str2[20];
scanf("%s%s",str1,str2);
這樣就可以實(shí)現(xiàn)多個(gè)字符串的輸入,注意幾點(diǎn):
1.輸入的每一個(gè)字符串長度應(yīng)小于定義時(shí)的字符數(shù)組長度。
2.輸入字符串時(shí),字符串與字符串之間用空格符或者回車換行符隔開。
有數(shù)組n=np.arange(24)
NumPy
NumPy(Numerical Python) 是 Python 的一個(gè)擴(kuò)展程序庫,支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫。Nupmy可用來存儲和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結(jié)構(gòu)要高效的多(該結(jié)構(gòu)也可以用來表示矩陣(matrix))。據(jù)說NumPy將Python相當(dāng)于變成一種免費(fèi)的更強(qiáng)大的MatLab系統(tǒng)。
NumPy 是一個(gè)運(yùn)行速度非??斓臄?shù)學(xué)庫,主要用于數(shù)組計(jì)算,包含:
一個(gè)強(qiáng)大的 N 維數(shù)組對象 ndarray頭條萊垍
廣播功能函數(shù)萊垍頭條
整合 C/C++/Fortran 代碼的工具垍頭條萊
線性代數(shù)、傅里葉變換、隨機(jī)數(shù)生成等功能頭條萊垍
ndarray對象萊垍頭條
NumPy 最重要的一個(gè)對象是其 N 維數(shù)組對象 ndarray,它是一系列同類型數(shù)據(jù)的集合,可以使用基于 0 的索引訪問集合中的項(xiàng)目。
ndarray 對象是用于存放同類型元素的多維數(shù)組。ndarray中的每個(gè)元素在內(nèi)存中使用相同大小的塊。 ndarray中的每個(gè)元素是數(shù)據(jù)類型對象的對象(稱為 dtype)
numpy.array( object , dtype = None , ndmin = 0 ,copy = True , order = None , subok = False )
一般只有 object 、dtype和 ndmin 參數(shù)常用,其他參數(shù)不常用
import numpy萊垍頭條
a=numpy.array([1,2,3]) #一維萊垍頭條
b=numpy.array([[1,2,3],[4,5,6]]) #二維垍頭條萊
c=numpy.array([1,2,3],dtype=complex) #元素類型為復(fù)數(shù)垍頭條萊
d=numpy.array([1,2,3],ndmin=2) #二維頭條萊垍
print(a,type(a))萊垍頭條
print(b,type(b))萊垍頭條
print(c,type(c))萊垍頭條
print(d,type(d))萊垍頭條
####################################萊垍頭條
[1 2 3] <class 'numpy.ndarray'>條萊垍頭
[[1 2 3]條萊垍頭
[4 5 6]] <class 'numpy.ndarray'>垍頭條萊
[1.+0.j 2.+0.j 3.+0.j] <class 'numpy.ndarray'萊垍頭條
[[1 2 3]] <class 'numpy.ndarray'>條萊垍頭
Numpy數(shù)組屬性
NumPy 數(shù)組的維數(shù)稱為秩(rank),一維數(shù)組的秩為 1,二維數(shù)組的秩為 2,以此類推。
在 NumPy中,每一個(gè)線性的數(shù)組稱為是一個(gè)軸(axis),也就是維度(dimensions)。比如說,二維數(shù)組相當(dāng)于是兩個(gè)一維數(shù)組,其中第一個(gè)一維數(shù)組中每個(gè)元素又是一個(gè)一維數(shù)組。所以一維數(shù)組就是 NumPy 中的軸(axis),第一個(gè)軸相當(dāng)于是底層數(shù)組,第二個(gè)軸是底層數(shù)組里的數(shù)組。而軸的數(shù)量——秩,就是數(shù)組的維數(shù)。
很多時(shí)候可以聲明 axis。axis=0,表示沿著第 0 軸進(jìn)行操作,即對每一列進(jìn)行操作;axis=1,表示沿著第1軸進(jìn)行操作,即對每一行進(jìn)行操作。
ndarray 對象屬性有:
常見的屬性有下面幾種 :
ndarray.shape : 這一數(shù)組屬性返回一個(gè)包含數(shù)組緯度的元組,它也可以用于調(diào)整數(shù)組大小
import numpy as np萊垍頭條
a=np.array([[1,2,3],[4,5,6]])萊垍頭條
print(a.shape) #打印shape屬性條萊垍頭
a.shape=(3,2) #修改shape屬性萊垍頭條
print(a)萊垍頭條
#######################################條萊垍頭
(2, 3)萊垍頭條
[[1 2]萊垍頭條
[3 4]萊垍頭條
[5 6]]萊垍頭條
ndarray.ndim: 這一數(shù)組屬性返回?cái)?shù)組的維數(shù)
import numpy as np
a=np.arange(24) #np.arange返回0-23的列表類型的數(shù)據(jù)萊垍頭條
print(a.ndim)萊垍頭條
b=a.reshape(2,3,4)萊垍頭條
print(b)條萊垍頭
print(b.ndim)頭條萊垍
############################條萊垍頭
1萊垍頭條
[[[ 0 1 2 3]條萊垍頭
[ 4 5 6 7]條萊垍頭
[ 8 9 10 11]]萊垍頭條
[[12 13 14 15]萊垍頭條
[16 17 18 19]萊垍頭條
[20 21 22 23]]]萊垍頭條
3萊垍頭條
ndarray.itemsize : 這一數(shù)組屬性返回?cái)?shù)組中每個(gè)元素的字節(jié)單位長度
import numpy as np
a=np.array([1,2,3]) #默認(rèn)是四個(gè)字節(jié)頭條萊垍
print(a.itemsize)萊垍頭條
#########################################條萊垍頭
4萊垍頭條
numpy.mat()函數(shù)的用法
該函數(shù)用來創(chuàng)建矩陣
import numpy as np條萊垍頭
#將列表轉(zhuǎn)為矩陣萊垍頭條
a=[7,8,9]萊垍頭條
b=np.mat(a)萊垍頭條
print(b)萊垍頭條
print("#"*10)萊垍頭條
#創(chuàng)建一行的矩陣萊垍頭條
m=np.mat([1,2,3]) 頭條萊垍
print(m)萊垍頭條
print("打印出第一行的第三個(gè)值:",m[0,2]) #取第一行的第三個(gè)值萊垍頭條
print("#"*10)萊垍頭條
x=np.mat([[3,2,1],[6,5,4]])萊垍頭條
print(x)萊垍頭條
print("打印出矩陣的第二行:",x[1])頭條萊垍
print("打印出矩陣的第二行:",x[1,:])萊垍頭條
print("打印出矩陣的行列數(shù):",x.shape) #獲得矩陣的行列數(shù)萊垍頭條
print("打印出矩陣的行數(shù) :",x.shape[0]) #獲得矩陣的行數(shù)萊垍頭條
print("打印出矩陣的列數(shù) :",x.shape[1]) #獲得矩陣的列數(shù)垍頭條萊
x.sort() #對矩陣的每一行進(jìn)行排序萊垍頭條
print("對矩陣的每一行進(jìn)行排序:")萊垍頭條
print(x)頭條萊垍
print("#"*10)頭條萊垍
numpy.zeros()函數(shù)的用法
該函數(shù)用于返回給定形狀和類型的新數(shù)組。返回的數(shù)據(jù)類型為 numpy.ndarray,具有給定形狀,類型和順序的0的數(shù)組。
參數(shù):
shape:int 或 int 的元組。新陣列的形狀,例如:(2,3)或2。垍頭條萊
dtype:數(shù)據(jù)類型,可選。、例如numpy.int8。默認(rèn)是numpy.float64萊垍頭條
order:{'C','F'},可選,默認(rèn):'C' 。是否在內(nèi)容中以行(C)或列(F)順序存儲多維數(shù)據(jù)。頭條萊垍
import numpy as np
a=np.zeros(5)萊垍頭條
print(a,type(a))萊垍頭條
b=np.zeros([1,2],dtype='int8')條萊垍頭
print(b)條萊垍頭
c=np.zeros([1,2,3],dtype='int8')萊垍頭條
print(c)萊垍頭條
如何交換數(shù)組的列
看來你是個(gè)超級小菜鳥啊,解析注上了,慢慢學(xué)習(xí)吧main(){ int a[2][3]={{1,2,3},{4,5,6}}
; int b[3][2],i,j; printf("array a:\n")
; //雙引號里的是字符串提示信息,作用是在屏幕上顯示提示 for(i=0;i
如何交換數(shù)組元素
1、定義一個(gè)int類型的一維數(shù)組,內(nèi)容為{6,2,9,15,1,5,20,7,18}。
2、將數(shù)組最大元素與最后一位元素進(jìn)行交換,最小元素與第一位元素進(jìn)行交換,并打印數(shù)組。
具體如下: 1、簡介 編程是編寫程序的中文簡稱,就是讓計(jì)算機(jī)代為解決某個(gè)問題,對某個(gè)計(jì)算體系規(guī)定一定的運(yùn)算方式,是計(jì)算體系按照該計(jì)算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。 為了使計(jì)算機(jī)能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算體系之間交流的過程就是編程。 2、匯編程序 匯編程序。使用匯編語言編寫計(jì)算機(jī)程序,程序員仍然需要十分熟悉計(jì)算機(jī)系統(tǒng)的硬件結(jié)構(gòu),所以從程序設(shè)計(jì)本身上來看仍然是低效率的、繁瑣的。但正是由于匯編語言與計(jì)算機(jī)硬件系統(tǒng)關(guān)系密切,在某些特定的場合,如對時(shí)空效率要求很高的系統(tǒng)核心程序以及實(shí)時(shí)控制程序等,迄今為止匯編語言仍然是十分有效的程序設(shè)計(jì)工具。 3、執(zhí)行原理 計(jì)算機(jī)對除機(jī)器語言以外的源程序不能直接識別、理解和執(zhí)行,都必須通過某種方式轉(zhuǎn)換為計(jì)算機(jī)能夠直接執(zhí)行的。這種將高級編程硬件程序設(shè)計(jì)語言編寫的源程序轉(zhuǎn)換到機(jī)器目標(biāo)程序的方式有兩種:解釋方式和編譯方式。
如何交換數(shù)組中兩個(gè)元素位置,相對位置不變
把數(shù)組元素寫入工作表A1單元格向右8個(gè)單元格(也就是A1:H1)內(nèi)Range("A1").Resize(1, 8) = cname把數(shù)組元素寫入工作表A1單元格向下8個(gè)單元格(也就是A1:A8)內(nèi)Range("A1").Resize(8, 1) = cname
如何交換數(shù)組中的位置
vue視圖移動后改變中心點(diǎn)地方法是,使用vue.js v-for綁定若干個(gè)選項(xiàng),需要對選項(xiàng)進(jìn)行排序上下移動操作。
需要對options里面數(shù)組的位置進(jìn)行交換,通常是這樣來寫:
假設(shè)向前移動一個(gè):var index = this.options.indexOf(option); //獲取當(dāng)前選項(xiàng)對象在數(shù)組里面的索引。
具體的原理就是根據(jù)中心點(diǎn)的位置方法原理確定選擇的方式,導(dǎo)入索引后改變數(shù)組的順序,視圖就能對應(yīng)的發(fā)生更新和移動。
如何交換數(shù)組中兩個(gè)位置的變量
在c語言中,全局變量和函數(shù)聲明及定義并列,也就是說,聲明在最外層作用域的變量即為全局變
如在如下程序中
int i;
int main()
{
int i_copy = i;
i = 9;
return 0;
}
int
i就是一個(gè)全局變量,故在main函數(shù)中可以調(diào)用或修改i的值
所以,定義數(shù)組也和普通全局變量的方法相同,如
char str[10];
int main()
{
str[0] = 'a';
str[1] = '\0';
return 0;
}
拓展資料
c語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。c語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管c語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的c語言程序可在許多電腦平臺上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱mcu)以及超級電腦等作業(yè)平臺。
二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的c語言語法產(chǎn)生差異,由美國國家標(biāo)準(zhǔn)局為c語言制定了一套完整的美國國家標(biāo)準(zhǔn)語法,稱為ansi
c,作為c語言最初的標(biāo)準(zhǔn)。目前2011年12月8日,國際標(biāo)準(zhǔn)化組織(iso)和國際電工委員會(iec)發(fā)布的c11標(biāo)準(zhǔn)是c語言的第三個(gè)官方標(biāo)準(zhǔn),也是c語言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識符,一定程度上實(shí)現(xiàn)了漢字編程。