【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])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg_intra_pred_mode问题.pdf

ffmpeg_intra_pred_mode问题.pdf文章

【R】语言第一课-----安装

安装R和Rstuido软件 R语言是用于统计分析,图形表示和报告的编程语言和软件环境;Rstudio是编辑、运行R语言的最为理想的工具之一。 1、官网下载R安装包 下载地址为:https://cran.r-project.org 进入链接,如下图所示&#xff0c…

面向对象基础知识整理

1、什么是对象? 什么是类? 对象是可以看的见摸得着的,对象可以是任何东西,比如水杯,书,手机等。准确的说,对象是一个自包含的实体,用一组可识别的特性和行为标识的。 类就是具有相同…

Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes values. (ie, from left to right, level by level). For example: Given binary tree {3,9,20,#,#,15,7}, 3/ \9 20/ \15 7return its level order traversal as: [[3],[9,20],[15,7] ] 解题思路:能够…

键盘事件相关

转自下面两个链接:http://www.cnblogs.com/starof/p/6558581.html http://www.cnblogs.com/cathsfz/archive/2011/05/29/2062382.html 在 JavaScript 中监听 IME 键盘输入事件 在 JavaScript 中监听用户的键盘输入是很容易的事情,但用户一旦使用了输入…

【R】语言第二课----- 变量的使用方法

num1<-c(9.1,8.2,7.3) num2<-1:10 char<-c(a,b,c) #单引号or双引号都可以 logit<-c(TRUE,FALSE,T,F) c(1,a,TRUE) sex<-c(F,M,F,M) sex sexf<-factor(sex) sexf num1[1]<-100 #索引一定要加方括号 num1[c(1,3)]<-c(99.9,77.7) num1[c(T,F,T)] num1[-2]…

Petuum - Careers

Petuum - CareersCloudformation

【R】语言第三课----矩阵

#矩阵 ?matrix m<-matrix(1:6,nrow 2,ncol3,dimnames list(c(r1,r2),c(c1,c2,c3))) m#默认按列排列 m<-matrix(1:6,nrow 2,ncol3,byrow T,dimnames list(c(r1,r2),c(c1,c2,c3)))m class(m) m[1,1] m[1,]# 相当于 m[c(T,F),] m[,1] m[r1,]m[1,] <- c(100,99,98…

谁说菜鸟不会数据分析--读书笔记

如果看不清可以下载下来&#xff0c;打开&#xff0c;放大。仅供参考。 转载于:https://www.cnblogs.com/sunshinewang/p/6591772.html

[MySQL 5.6优化] --order by limit x,x 优化

简介&#xff1a;order by limit x ,x 在实际工作中有各种业务需求要有order by的排序&#xff0c;有时候处理不好则会造成系统宕机&#xff01;原理&#xff1a;a.通过索引来获取排序b.通过内部算法获取排序&#xff1a; 案例具体SQL&#xff1a; SELECT c.order_price orderP…

【R】语言第四课----读取文件

install.packages("readxl") getwd() setwd("E:/作业4") library(readxl) tianmao<-read_excel(tianmaoTV.xlsx,skip1)#把第一行跳过&#xff0c;直接从第二行开始读取 #创建新变量 tianmao[total_sales]<-tianmao$current_price*tianmao$month_sale…

Html.Partial和Html. RenderPartial用法

Html.Partial和Html. RenderPartial用法Html.partial和RenderPartial的用法与区别Html.partial和RenderPartial都是输出html片段&#xff0c;区别在于Partial是将视图内容直接生成一个字符串并返回&#xff08;相当于有个转义的过程&#xff09;&#xff0c;RenderPartial方法是…

算术编码简单研究

算术编码 是一种无损数据压缩方法&#xff0c;也是一种熵编码的方法。和其它熵编码方法不同的地方在于&#xff0c;其他的熵编码方法通常是把输入的消息分割为符号&#xff0c;然后对每个符号进行编码&#xff0c;而算术编码是直接把整个输入的消息编码为一个数&#xff0c;一个…

Thinkphp5 还有这种操作?

2019独角兽企业重金招聘Python工程师标准>>> 在 _initialize 中取出 控制器名和方法名 define(CONTROLLER_NAME,Request::instance()->controller()); define(MODULE_NAME,Request::instance()->module()); define(ACTION_NAME,Request::instance()->actio…

【R】语言第五课----画图

?plot#高级绘图函数 可以完整地绘制出一张图 ?mtcars plot(mtcars$wt) plot(mtcars[,1:2]) plot(mtcars) plot(mtcars$wt,mtcars$disp) plot(mtcars$wt,mtcars$disp,typep) plot(mtcars$wt,mtcars$disp,typel) plot(mtcars$wt,mtcars$disp,typeb) plot(mtcars$wt,mtcars$disp…

Solidworks如何将参考平面的图形投影到某曲面上

1 画好草图&#xff0c;点击曲线-分割线 2 选择要投影的草图和被投影的面&#xff08;那个球面&#xff09;&#xff0c;最后效果如下图所示 3 为了获取连续的轨迹&#xff0c;我们可以再次选择这个草图&#xff0c;然后在投影面中选择平面&#xff0c;最后得到的图形如下图所示…

向极限挑战:算术编码 (转)

向极限挑战&#xff1a;算术编码 (转) http://blog.csdn.net/hhf383530895/archive/2009/08/24/4478605.aspx 我们在上一章中已经明白&#xff0c;Huffman 编码使用整数个二进制位对符号进行编码&#xff0c;这种方法在许多情况下无法得到最优的压缩 效果。假设某个字符的出…

np.random.seed(0)作用

在用python时时常会看到如下代码&#xff1a; import numpy as np np.random.seed(0) 其中np.random.seed(0)的作用是使得随机数据可预测&#xff0c;当我们设置相同的seed&#xff0c;每次生成的随机数相同。 如果不设置seed&#xff0c;则每次会生成不同的随机数&#xf…

发送邮件被退回,提示: Helo command rejected: Invalid name 错误

我自己配置的 postfix dovecot server&#xff0c; 配置了outlook 后&#xff0c; 相同的账号。 在有的电脑上能收发成功&#xff0c; 在有的电脑上发送邮件就出现退信。提示 Helo command rejected: Invalid name 错误。经过分析&#xff0c; 原来是计算机名的问题。 计算机名…

Series和DataFrame、相关性及NaN处理

pandas核心数据结构 pandas是以numpy为基础的&#xff0c;还提供了一些额外的方法 Series series用来表示一维数据结构&#xff0c;与python内部的数组类似&#xff0c;但多了一些额外的功能。 series内部由两个相互关联的数组组成&#xff1a;主数组用来存放数组&#xff…