日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Numpy 多维数组变为常量、增加维度、元素复制、按块复制、横轴竖轴合并数组、连接数组

發布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Numpy 多维数组变为常量、增加维度、元素复制、按块复制、横轴竖轴合并数组、连接数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. flatten

NumPyflatten 函數也有改變 shape 的能力,它將高維數組變為向量。但是,它會發生數組復制行為。

In [57]: m = np.random.randint(1,10,(2,3))In [58]: m
Out[58]: 
array([[2, 1, 6],[4, 2, 4]])In [59]: n = m.flatten()In [60]: n
Out[60]: array([2, 1, 6, 4, 2, 4])In [61]: 

n[0] 元素被改變后,m 的元素沒有發生變化。

In [61]: n[0] = 100In [62]: n
Out[62]: array([100,   1,   6,   4,   2,   4])In [63]: m
Out[63]: 
array([[2, 1, 6],[4, 2, 4]])In [64]: 

2. newaxis

使用 newaxis 增加一個維度,維度的索引只有 0 。

In [64]: m = np.arange(10)In [65]: m
Out[65]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [69]: n = m[:, np.newaxis]In [70]: n
Out[70]: 
array([[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]])In [71]: 

3. repeat

repeat 操作,實現某一維上的元素復制操作。在維度 0 上復制元素 2 次:

In [72]: a = np.array([[1,2], [3,4]])In [73]: a
Out[73]: 
array([[1, 2],[3, 4]])In [74]: np.repeat(a,2,axis=0)
Out[74]: 
array([[1, 2],[1, 2],[3, 4],[3, 4]])In [75]: 

在維度 1 上復制元素 2 次:

In [75]: np.repeat(a,2,axis=1)
Out[75]: 
array([[1, 1, 2, 2],[3, 3, 4, 4]])In [76]: 

4. tile

tile 實現按塊復制元素:

In [76]: a 
Out[76]: 
array([[1, 2],[3, 4]])In [77]: np.tile(a, 3)
Out[77]: 
array([[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4]])In [78]: np.tile(a, (2, 3))
Out[78]: 
array([[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4],[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4]])In [79]: a
Out[79]: 
array([[1, 2],[3, 4]])In [80]: 

5. vstack

vertical stack,沿豎直方向合并多個數組:

In [80]: a = np.array([[1,2], [3,4]])In [81]: a
Out[81]: 
array([[1, 2],[3, 4]])In [82]: b = np.array([[-1, -2]])In [83]: b
Out[83]: array([[-1, -2]])In [84]: c = np.vstack((a,b)) # 參數為元組In [85]: c
Out[85]: 
array([[ 1,  2],[ 3,  4],[-1, -2]])In [86]: 

6. hstack

hstack 沿水平方向合并多個數組。值得注意,不管是 vstack,還是 hstack,沿著合并方向的維度,其元素的長度要一致。

In [86]: a = np.array([[1,2],[3,4]])In [87]: a
Out[87]: 
array([[1, 2],[3, 4]])In [88]: b = np.array([[5,6,7],[8,9,10]])In [89]: b
Out[89]: 
array([[ 5,  6,  7],[ 8,  9, 10]])In [90]: c = np.hstack((a,b))In [91]: c
Out[91]: 
array([[ 1,  2,  5,  6,  7],[ 3,  4,  8,  9, 10]])In [92]: 

7. concatenate

concatenate 指定在哪個維度上合并數組。

In [92]: a = np.array([[1,2],[3,4]])In [93]: a
Out[93]: 
array([[1, 2],[3, 4]])In [94]: b = np.array([[-1,-2]])In [95]: b
Out[95]: array([[-1, -2]])In [97]: np.concatenate((a,b),axis=0)	# 效果等于 vstack
Out[97]: 
array([[ 1,  2],[ 3,  4],[-1, -2]])In [98]: c = np.array([[5,6,7],[8,9,10]])In [99]: np.concatenate((a,c),axis=1)	# 效果等于 hstack
Out[99]: 
array([[ 1,  2,  5,  6,  7],[ 3,  4,  8,  9, 10]])In [100]: 

8. argmax、argmin

argmax 返回數組中某個維度的最大值索引,當未指明維度時,返回 buffer 中最大值索引。如下所示:

In [100]: a = np.random.randint(1,10,(2,3))In [101]: a
Out[101]: 
array([[5, 1, 6],[2, 1, 1]])In [102]: a.argmax()
Out[102]: 2In [103]: a.argmax(axis=0)
Out[103]: array([0, 0, 0], dtype=int64)In [104]: a.argmax(axis=1)
Out[104]: array([2, 0], dtype=int64)In [105]: 

總結

以上是生活随笔為你收集整理的Numpy 多维数组变为常量、增加维度、元素复制、按块复制、横轴竖轴合并数组、连接数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。