挑战NumPy100关,主要来自于NumPy邮件组,StackOverflow和NumPy文档。有题有答案,NumPy值得拥有。
- 使用名称
np
导入numpy包 (★☆☆) - 打印出numpy版本号和配置信息 (★☆☆)
- 创建一个空向量, 尺寸为10 (★☆☆)
- 查出一个数组占用的内存体积 (★☆☆)
- 如何使用命令行来获得numpy中add这个函数的文档? (★☆☆)
- 创建一个大小为10的空向量,但第五个值为1 (★☆☆)
- 创建一个值为从10到49的向量[10,11,12…49] (★☆☆)
- 反转一个向量(第一个元素变为最后一个) (★☆☆)
- 创建一个3x3矩阵,其值范围为0到8 (★☆☆)
- 从[1,2,0,0,4,0]中查找出所有非零元素 (★☆☆)
- 创建一个 3 * 3单位矩阵 (★☆☆)
- 使用随机值创建一个 $333$ 数组(★☆☆)
- 使用随机值创建一个10x10数组,并找出其最小值和最大值 (★☆☆)
- 创建一个大小为30的随机向量并找到平均值 (★☆☆)
- 创建一个2维数组,边框元素都为1,内部元素都为0 (★☆☆)
- 如何在一个既有数组周围添加边框(用0填充) (★☆☆)
- 下方表达式的结果是什么? (★☆☆)
1
2
3
4
5
60 * np.nan
np.nan == np.nan
np.inf > np.nan
np.nan - np.nan
np.nan in set([np.nan])
0.3 == 3 * 0.1 - 创建一个5x5矩阵, 其对角线下方的数值正好是1,2,3,4 (★☆☆)
- 创建一个8x8矩阵并用棋盘图案填充它 (★☆☆)
- 假设有一个(6,7,8)形状的三维数组,那么其中第100个元素的索引(x,y,z)是什么?
- 使用tile函数创建棋盘格8x8矩阵 (★☆☆)
- 把一个5x5随机矩阵归一化 (★☆☆)
- 创建一个自定义dtype,用这个数据类型可以将颜色描述为四个无符号字节(RGBA)(★☆☆)
- 5x3矩阵乘以3x2矩阵(实矩阵乘积) (★☆☆)
- 给定一维数组,所有在3到8之间的元素都变成其负数(正->负, 负->正). (★☆☆)
- 这段脚本的输出是什么?(★☆☆)
1
2
3
4
5# Author: Jake VanderPlas
print(sum(range(5),-1))
from numpy import *
print(sum(range(5),-1)) - 设有整数向量Z,这些表达式中的哪些是合法的(★☆☆)
1 | Z**Z |
- 以下表达式的结果是什么?
1 | np.array(0) / np.array(0) |
- 如何让一个浮点类型数组里面的值全部取整? (★☆☆)
- 如何在两个数组之间找到相同的值? (★☆☆)
- 如何忽略所有的numpy警告(真正干活的时候不推荐这么干哈)?? (★☆☆)
- 以下表达式为真吗?(★☆☆)
1 | np.sqrt(-1) == np.emath.sqrt(-1) |
- 如何获取昨天,今天和明天的日期? (★☆☆)
- 如何获得与2016年7月里的所有日期? (★★☆)
- 如何原地计算 ((A+B)*(-A/2)) (不做copy动作)? (★★☆)
- 使用5种不同的方法提取一个随机数组里的整型数据部分 (★★☆)
- 创建一个5x5矩阵,行值从0到4 (★★☆)
- 已知一个生成器函数, 可以生成10个整数. 用它来构建数组 (★☆☆)
- 创建一个大小为10的向量,值为0到1的小数(不包含0和1) (★★☆)
- 创建一个大小为10的随机向量并对其进行排序 (★★☆)
- 如何比np.sum更快地对一个小数组求和?(★★☆)
- 设有两个随机数组A和B,检查它们是否相等 (★★☆)
- 使数组不可变(只读) (★★☆)
- 设有一个随机10x2矩阵, 其中的值代表笛卡尔坐标,现需将它们转换为极坐标 (★★☆)
- 创建大小为10的随机向量,并将最大值替换为0 (★★☆)
- 创建一个结构化数组,其x和y坐标覆盖[0,1] x [0,1]区域 (★★☆)
- 打印每个numpy标量类型的最小和最大可表示值 (★★☆)
- 如何打印数组的所有值?(★★☆)
- 如何在向量中找到最接近的值(给定标量)?(★★☆)
- 创建一个表示位置(x,y)和颜色(r,g,b)的结构化数组(★★☆)
- 设有一个(100,2)的随机向量, 每组值代表一个坐标, 求点与点之间的距离 (★★☆)
- 如何就地将float(32位)数组转换为整型(32位)数组?
- 如何读取以下文件?? (★★☆)
1
2
31, 2, 3, 4, 5
6, , , 7, 8
, , 9,10,11 - 什么东西与numpy数组的枚举等价?(★★☆)
- 生成一个通用的二维高斯型数组 (★★☆)
- 如何将p个元素随机放置在二维数组中 (★★☆)
- 减去矩阵每行的均值 (★★☆)
- 如何按第n列排序数组?(★★☆)
- 如何判断一个二维数组里是否有空列? (★★☆)
- 有一个给定值, 从数组中找出最接近的值 (★★☆)
- 设有两个形状为(1,3)和(3,1)的数组,如何使用迭代器计算它们的总和?(★★☆)
- 创建一个具有name属性的数组类(★★☆)
- 设有一个给定的向量,如何让每个能被第二个向量索引的元素加1(注意重复索引的情况)?(★★★)
- 如何根据索引列表(I)将向量(X)的指定元素转移到到数组(F)?(★★★)
- 设有一个(dtype = ubyte)的(w,h,3)图像,计算内部不同颜色的数量(★★★)
- 设有一个四维数组,如何一次获取最后两个轴上元素的总和?(★★★)
- 设有一个单一维度的向量D, 如何计算D的一个子集的平均值 (该子集使用一个和D相同大小的向量S来存子集元素的索引? (★★★)
- 如何获得两个向量的点积? (★★★)
点积就是两个向量对应位置一一相乘后求和的操作,最后结果是一个标量,是一个实数值。
两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的点积定义为:
a·b = a1b1 + a2b2 + …… + anbn。
使用矩阵乘法并把(纵列)向量当作n×1 矩阵,点积还可以写为:
a·b=a^T*b ,这里的a^T指示矩阵a的转置
设有考虑向量A [1,2,3,4,5],构建一个新向量, 在A的每个值之间插入3个连续零? (★★★)
设有一个维度(5,5,3)的数组, 如何与维度(5,5)的数组相乘? (★★★)
如何让数组里面的两行互换? (★★★)
设有10个三元组(例如[x1, y1, z1]), 每个三元组代表一个三角形. 这些三角形可能还有共同的顶点. 现在需要找出组成这10个三角形的所有线段的合(还要去重哦) (★★★)
设有一个bincount数组C, 请生成一个数组A, 使得np.bincount(A) == C? (★★★)
解释一下什么叫bincount1
2
3
4
5
6
7
8
9
10
11
12import numpy as np
# x里最大的数为10,那么它的索引值为0到10, 因此bin的数量为11
x = np.array([1, 1, 1, 6, 4, 4, 0, 0, 10])
# 0出现了2次,1出现了3次......10出现了1次......
print(np.bincount(x))
#因此,输出结果为:[2 3 0 0 2 0 1 0 0 0 1]
# 可以看到x中最大的数为18,那么它的索引值为0到18, 因此bin的数量为19
x = np.array([18, 10, 2, 10, 4, 1])
# 0出现了0次,索引1出现了1次......索引10出现了2次......
print(np.bincount(x))
#输出结果为:[0 1 1 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 1]如何使用数组上的滑动窗口计算平均值?(★★★)
设有一个一维数组Z,请构建一个二维数组,其第一行为(Z [0],Z [1],Z [2]),每个后续行都要移1单位(最后一行应为(Z [ -3],Z [-2],Z [-1]) (★★★)
如何反转一个布尔值(true->false或false->true), 或改变浮点值前面的正负号(正浮点数变成负浮点数, 或负浮点数变正浮点数)? (★★★)
设有两组的 点 数据, 这些点 两两可以构建成一个线段. 同时设有一个点p, 如何计算从p到每个线段的垂直距离?(★★★)
下图为一个样例
设有两组的 点 数据, 这些点 两两可以构建成一个线段. 同时设有一系列点P, 如何计算从P[j]到每个线段的垂直距离? (★★★)
可参考上一道题设有一个任意数组,编写一个函数,以给定元素为中心, 提取具有固定形状的子部分(必要时可以用固定值来做填充)(★★★)
设有一个Z = [1,2,3,4,5,6,7,8,9,10,11,12,13,14], 求一个数组R = [[1,2,3,4], [2,3,4,5], [3,4,5,6], …, [11,12,13,14]]? (★★★)
求一个矩阵的秩 (★★★)
秩(RANK), 我们知道线性代数中的矩阵, 有一种含义就是代表一个方程组, 矩阵的秩就是这个方程组中那些原有的成员的数量
如何找出一个数组里出现次数最多的元素?
- 从一个随机的10x10矩阵中提取所有连续的3x3块(★★★)
- 创建一个二维数组子类,使Z [i,j] == Z [j,i] (★★★)
- 设有P个矩阵, 形状为(n,n); 以及p个向量, 形状为(n,1). 问题是, 如何一次就算出p矩阵乘积之和(结果的形状应该是(n,1)) (★★★)
- 设有一个16x16的数组, 如何获得分块加总 (每个块都是4* 4)? (★★★)
- 如何使用numpy数组实现the Game of Life?(★★★)
- 如何获取一个数组里面前N大 (the largest n) 的元素? (★★★)
- 给定任意数量的向量,请用它们构建笛卡尔积(每个项的每个组合)(★★★)
- 如何使用一个常规数组创建一个记录数组(record array)? (★★★)
- 设有一个很大的向量 Z, 求Z的3次幂(至少尝试3种不同的方法) (★★★)
- 设有两个数组A和B, A的形状(8,3), B的形状是(2,2). 请找出A的某些行, 该行内包含B的整行元素(不在意元素顺序). (★★★)
- 设有一个10x3矩阵,请找出其中数值不完全相等的行 (e.g. [2,2,3]) (★★★)
- 将int的向量转换为二元矩阵来表示(★★★)
- 设有一个二维数组,如何提取值和其他行都不同的行?(★★★)
- 设有两个向量A和B, 请写出AB求inner, outer, sum和mul运算的爱因斯坦求和约定(einsum)等效形式. (★★★)
- 设有两个矢量(X,Y)描述的一条路径,如何使用等距样本法对其进行采样
- 给定整数n和2维数组X,从X中选择可以解释为具有n度的多项分布的行,即,仅包含整数并且总和为n的行。(★★★)
- 计算一个1维数组X的平均值, 要求使用自展法求95%的置信区间. (即,对数组重复N次采样, 每次采样更换部分元素, 然后计算每个样本的平均值,最后计算均值上的百分位数) (★★★)
答案:https://aistudio.baidu.com/aistudio/projectDetail/118377
发布时间: 2019-09-17
最后更新: 2019-11-18
本文链接: https://juoyo.github.io/posts/b8980d32.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!