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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【numpy】20道numpy题目

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【numpy】20道numpy题目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、創建一個長度為10的一維全為0的ndarray對象,然后讓第5個元素等于1

import numpy as npndarry =np.zeros(10) ndarry array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) ndarry[4]=1 ndarry array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])

2、創建一個元素為從10到49的ndarray對象

ndarray = np.arange(10,50) ndarray array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,44, 45, 46, 47, 48, 49])

3、將第2題的所有元素位置反轉

ndarray[::-1] array([49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33,32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16,15, 14, 13, 12, 11, 10])

使用np.random.random創建一個10*10的ndarray對象,并打印出最大最小元素

ndarray = np.random.random((10,10)) ndarray ndarray.min() 0.009073749212965887

5、創建一個10*10的ndarray對象,且矩陣邊界全為1,里面全為0

a=np.zeros((10,10),dtype=np.int8) a[[0,-1]]=1 a[:,[0,-1]]=1 a array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=int8)

6、創建一個每一行都是從0到4的5*5矩陣

a=np.array([0,1,2,3,4]*5).reshape(5,5) a array([[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4]])

7、創建一個范圍在(0,1)之間的長度為12的等差數列

a=np.linspace(0,1,12) a array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,0.90909091, 1. ])

8、創建一個長度為10的隨機數組并排序

a = np.random.randint(1,10,size=10) a.sort() a array([1, 2, 2, 3, 4, 4, 6, 7, 8, 9])

9、創建一個長度為10的隨機數組并將最大值替換為0

a = np.random.randint(1,10,10)b=a.max() c=a==b a[c]=0 a,b,c (array([3, 5, 0, 7, 1, 2, 7, 0, 5, 7]),9,array([False, False, True, False, False, False, False, True, False,False]))

10、如何根據第3列來對一個5*5矩陣排序????

a=np.random.randint(0,25,size=25).reshape(5,5) a array([[ 4, 20, 17, 6, 5],[ 8, 14, 14, 10, 3],[ 7, 5, 12, 7, 4],[15, 1, 7, 5, 24],[12, 14, 16, 12, 2]]) b=np.argsort(a[:,2]) a[b] array([[15, 1, 7, 5, 24],[ 7, 5, 12, 7, 4],[ 8, 14, 14, 10, 3],[12, 14, 16, 12, 2],[ 4, 20, 17, 6, 5]])

11、給定一個4維矩陣,如何得到最后兩維的和?

a=np.random.randint(0,10,size=(3,4,5,6)) a.sum(axis=-1).sum(axis=-1) a array([[[[4, 0, 0, 8, 6, 9],[4, 0, 8, 4, 4, 5],[3, 7, 2, 4, 2, 7],[9, 8, 9, 2, 3, 1],[8, 1, 4, 2, 5, 9]],[[7, 5, 5, 7, 6, 2],[3, 5, 3, 4, 7, 1],[0, 5, 7, 7, 6, 7],[5, 8, 7, 9, 8, 3],[6, 9, 2, 6, 0, 5]],[[9, 2, 7, 9, 0, 7],[1, 4, 7, 5, 4, 3],[6, 8, 0, 2, 8, 4],[8, 4, 8, 7, 4, 3],[0, 9, 2, 2, 6, 7]],[[3, 0, 0, 9, 5, 3],[7, 4, 9, 4, 9, 8],[7, 1, 3, 3, 4, 5],[1, 0, 7, 3, 8, 3],[7, 1, 6, 3, 9, 4]]],[[[0, 4, 8, 9, 7, 6],[0, 0, 7, 0, 8, 3],[3, 7, 7, 4, 7, 8],[5, 1, 7, 5, 3, 7],[8, 9, 0, 4, 2, 6]],[[1, 9, 1, 2, 7, 6],[6, 4, 4, 3, 9, 5],[4, 1, 5, 8, 9, 5],[0, 0, 2, 8, 9, 5],[6, 3, 0, 8, 0, 9]],[[5, 4, 9, 2, 9, 8],[2, 7, 4, 3, 5, 8],[8, 8, 0, 4, 4, 8],[7, 5, 1, 6, 1, 1],[1, 8, 1, 0, 4, 4]],[[7, 6, 6, 4, 8, 2],[2, 1, 1, 1, 0, 7],[5, 1, 6, 2, 3, 5],[2, 4, 6, 0, 8, 9],[3, 6, 5, 3, 1, 6]]],[[[1, 8, 1, 7, 2, 5],[3, 0, 9, 3, 8, 0],[5, 2, 1, 0, 8, 4],[4, 1, 3, 8, 4, 3],[4, 8, 8, 2, 6, 2]],[[7, 6, 2, 5, 9, 7],[2, 9, 1, 2, 5, 9],[3, 0, 2, 5, 5, 0],[6, 0, 1, 8, 4, 3],[5, 4, 5, 6, 2, 1]],[[9, 5, 0, 5, 0, 7],[0, 4, 8, 4, 4, 8],[6, 2, 3, 9, 3, 7],[7, 7, 1, 8, 3, 5],[0, 4, 7, 6, 9, 7]],[[2, 1, 4, 6, 7, 8],[8, 6, 0, 5, 8, 1],[9, 4, 8, 2, 8, 5],[0, 6, 2, 3, 9, 6],[8, 7, 4, 2, 7, 6]]]])

12、給定數組[1, 2, 3, 4, 5],如何得到在這個數組的每個元素之間插入3個0后的新數組?

a=np.arange(1,6) b=np.zeros(17,dtype=np.int8) b[::4]=a b array([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5], dtype=int8)

13、給定一個二維矩陣,如何交換其中兩行的元素?

a=np.arange(0,20).reshape(4,5) a a[[1,0,2,3]] a array([[ 0, 1, 2, 3, 4],[ 5, 6, 7, 8, 9],[10, 11, 12, 13, 14],[15, 16, 17, 18, 19]])

14、創建一個100000長度的隨機數組,使用兩種方法對其求三次方,并比較所用時間

import time a=np.random.randn(1000000) at1 = time.time() np.power(a,3)time= time.time()-t1 time 0.0468747615814209

15、創建一個53隨機矩陣和一個32隨機矩陣,求矩陣積

a=np.random.randint(0,10,(5,3))b=np.random.randint(0,10,(3,2)) a,b np.matmul(a,b) array([[ 48, 50],[171, 101],[124, 62],[105, 63],[ 75, 67]])

16、矩陣的每一行的元素都減去該行的平均值

a=np.random.randint(0,10,(3,3)) a b=a.mean(axis=1).reshape(3,1) a-b array([[ 2.66666667, -1.33333333, -1.33333333],[-3. , 3. , 0. ],[-1.33333333, 0.66666667, 0.66666667]])

17、打印出以下函數(要求使用np.zeros創建8*8的矩陣):
[[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]]

a=np.zeros((8,8),dtype='int') a[::2,1::2]=1 a[1::2,::2]=1 a array([[0, 1, 0, 1, 0, 1, 0, 1],[1, 0, 1, 0, 1, 0, 1, 0],[0, 1, 0, 1, 0, 1, 0, 1],[1, 0, 1, 0, 1, 0, 1, 0],[0, 1, 0, 1, 0, 1, 0, 1],[1, 0, 1, 0, 1, 0, 1, 0],[0, 1, 0, 1, 0, 1, 0, 1],[1, 0, 1, 0, 1, 0, 1, 0]])

18、正則化一個5*5隨機矩陣
正則的概念:假設a是矩陣中的一個元素,max/min分別是矩陣元素的最大最小值,則正則化后a = (a - min)/(max - min)

a=np.random.randint(0,10,size=(5,5)) amin=a.min() amax=a.max() (a-amin)/(amax-amin) array([[0.44444444, 0.11111111, 0.11111111, 0.33333333, 0.88888889],[0. , 0.88888889, 0.77777778, 1. , 0.11111111],[0.33333333, 0.55555556, 0.66666667, 0.33333333, 0.11111111],[0.55555556, 0.33333333, 1. , 0.77777778, 0.33333333],[0.11111111, 0.33333333, 0.11111111, 0.88888889, 0.77777778]])

19、將一個一維數組轉化為二進制表示矩陣。例如
[1,2,3]
轉化為
[[0,0,1],
[0,1,0],
[0,1,1]]

num = 4 n1 = np.arange(num) n1 n2 = np.zeros(shape=(num,num),dtype='int') n2 array([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]]) for i in range(num):n = n1[i]for j in range(num-1,-1,-1):n2[i][j] = n%2n = n//2 n2[1::] array([[0, 0, 0, 1],[0, 0, 1, 0],[0, 0, 1, 1]])

20、實現冒泡排序法

arr = np.random.randint(1,10,size=10) for i in range(1, len(arr)):for j in range(0, len(arr)-i):if arr[j] > arr[j+1]:arr[j], arr[j + 1] = arr[j + 1], arr[j] arr array([2, 2, 3, 5, 5, 6, 7, 8, 9, 9])

總結

以上是生活随笔為你收集整理的【numpy】20道numpy题目的全部內容,希望文章能夠幫你解決所遇到的問題。

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