最常见的 NumPy 面试问题和答案 [对于应届生]

已发表: 2020-12-29

如果您希望在技术领域拥有辉煌的职业生涯,那么您已经知道 NumPy 的资格是目前最抢手的技能之一。 毕竟,NumPy 是建立在计算阵列的事实标准之上的。

因此,这里列出了一些常见的 NumPy 面试问题和答案,您可能希望在下次面试前查看这些问题和答案。

前 15 个 NumPy 面试问题和答案

问题 1:什么是 NumPy?

NumPy 是一个开源的、通用的、用于数组处理的包。 它缺少数字 Python。 它以其强大的 N 维数组对象和加载的用于处理数组的工具的高端性能而闻名。 该包是 Python 的扩展,用于执行科学计算和其他广播功能。

NumPy 易于使用、优化良好且高度灵活。

无需编码经验。 360° 职业支持。 来自 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭。

问题 2:NumPy 的用途是什么?

Python 上的开源数值库支持多维数组并包含矩阵数据结构。 可以使用 NumPy 对数组执行不同类型的数学运算。 这包括三角运算以及统计和代数计算。 Numeric 和 Numarray 是 NumPy 的扩展。

问题 3:为什么 NumPy 优于 Idl、Matlab、Octave 或 Yorick 等其他编程工具?

NumPy 是 Python 编程语言中的一个高性能库,允许进行科学计算。 它比 Idl、Matlab、Octave 或 Yorick 更受欢迎,因为它是开源和免费的。 此外,由于它使用的是通用编程语言 Python,因此在将 Python 的解释器连接到 C/C++ 和 Fortran 代码时,它的得分高于通用编程语言。

NumPy 支持多维数组和矩阵,并有助于对它们执行复杂的数学运算。

问题 4:NumPy 的各种特性是什么?

作为用于数组处理的强大开源包,NumPy 具有各种有用的功能。 他们是:

  1. 包含一个 N 维数组对象
  2. 它是互耐受的; 兼容许多硬件和计算平台
  3. 与数组库配合得非常好; 稀疏、分布式或 GPU
  4. 执行复杂(广播)功能的能力
  5. 支持与 C 或 C++ 和 Fortran 代码集成的工具
  6. 能够执行高级数学函数,如统计、傅里叶变换、排序、搜索、线性代数等
  7. 它还可以作为通用数据的多维容器
  8. 支持科学和财务计算

问题 5:如何在 Windows 上安装 NumPy?

要在 Windows 上安装 NumPy,您必须首先在您的计算机上下载并安装 Python。

请按照以下步骤安装 Python:

第 1 步:访问 Python 的官方页面并在您的 Windows 10/8/7 上下载 Python 和 Python 可执行二进制文件

第 2 步:打开 Python 可执行安装程序并按运行

第 3 步:在 Windows 系统上安装 pip

使用 pip,您可以在 Python 中安装 NumPy。 下面是 NumPy 的安装过程:

第一步:启动终端

第 2 步:键入 pip

第 3 步:安装 NumPy

问题 6. 列出 NumPy 数组相对于(嵌套)Python 列表的优势?

Python 的列表,尽管是非常高效的容器,能够提供许多功能,但与 NumPy 数组相比,它有一些限制。 不可能执行包括元素加法和乘法在内的矢量化操作。

它们还要求 Python 存储每个元素的类型信息,因为它们支持不同类型的对象。 这意味着每次对元素进行操作时都必须执行类型调度代码。 此外,每次迭代都必须进行类型检查并需要 Python API 簿记,导致 C 循环执行的操作很少。

问题 7:列出创建一维数组和二维数组的步骤

一维数组的创建如下:

数字=[1,2,3]

num = np.array(num)

打印(“一维数组:”,num)

创建一个二维数组如下:

num2=[[1,2,3],[4,5,6]]

num2 = np.array(num2)

print("\n2d 数组:",num2)

查看:数据科学面试问题

问题 8:如何创建 3D 阵列?

创建一个三维数组如下:

num3=[[[1,2,3],[4,5,6],[7,8,9]]]

num3 = np.array(num3)

print("\n3d 数组:",num3)

问题9:一维阵列、二维阵列和3D/ND阵列分别使用shape的步骤是什么?

一维数组:

num=[1,2,3] 如果不加

print('\nshpae of 1d ',num.shape)

二维数组:

num2=[[1,2,3],[4,5,6]] 如果不加

print('\nshpae of 2d ',num2.shape)

3D 或 ND 阵列:

num3=[[[1,2,3],[4,5,6],[7,8,9]]] 如果不加

print('\nshpae of 3d ',num3.shape)

问题 10:如何识别给定 NumPy 数组的数据类型?

使用以下代码序列来识别 NumPy 数组的数据类型。

print('\n 数据类型 num 1 ',num.dtype)

print('\n 数据类型 num 2 ',num2.dtype)

print('\n 数据类型 num 3 ',num3.dtype)

问题 11. 计算给定值在整数数组中出现的次数的过程是什么?

您可以使用 bincount() 函数计算给定值出现的次数。 应该注意的是 bincount() 函数接受正整数或布尔表达式作为其参数。 不能使用负整数。

使用 NumPy.bincount()。 结果数组是

>>> arr = NumPy.array([0, 5, 4, 0, 4, 4, 3, 0, 0, 5, 2, 1, 1, 9])

>>> NumPy.bincount(arr)

问题 12. 如何检查空(零元素)数组?

如果变量是一个数组,您可以使用 size 属性检查一个空数组。 但是,变量可能是列表或序列类型,在这种情况下,您可以使用 len()。

检查零元素的首选方法是 size 属性。 这是因为:

>>> a = NumPy.zeros((1,0))

>>> a.大小

0

然而

>>> 长度(一)

1

问题 13:在某些条件为真的情况下,在 NumPy 上查找数组索引的过程是什么?

您可以使用函数 numpy.nonzero() 来查找索引或数组。 您也可以使用 nonzero() 方法来执行此操作。

在下面的程序中,我们将采用一个数组 a,其中条件是 a > 3。它返回一个布尔数组。 我们知道 Python 上的 False 和 NumPy 表示为 0。因此,np.nonzero(a > 3) 将返回条件为 True 的数组 a 的索引。

>>> 将 numpy 导入为 np

>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])

>>> 一 > 3

数组([[假,假,假],

[真,真,真],

[真,真,真]],dtype=bool)

>>> np.nonzero(a > 3)

(数组([1, 1, 1, 2, 2, 2]), 数组([0, 1, 2, 0, 1, 2]))

您还可以调用布尔数组的 nonzero() 方法。

>>> (a > 3).nonzero()

(数组([1, 1, 1, 2, 2, 2]), 数组([0, 1, 2, 0, 1, 2]))

阅读: Apache PySpark 中的数据框:综合教程

问题 14:下图是输入的 NumPy 数组。 删除第二列并将其替换为下面给出的新列。

导入 NumPy

sampleArray = NumPy.array([[34,43,73],[82,22,12],[53,94,66]])

newColumn = NumPy.array([[10,10,10]])

预期输出

打印原始阵列

[[34 43 73]

[82 22 12]

[53 94 66]]

删除轴 1 上的第 2 列后的数组

[[34 73]

[82 12]

[53 66]]

在轴 1 上插入第 2 列后的数组

[[34 10 73]

[82 10 12]

[53 10 66]]

解决方案

导入 NumPy

print(“打印原始数组”)

sampleArray = NumPy.array([[34,43,73],[82,22,12],[53,94,66]])

打印(样本数组)

print(“删除轴 1 上的第 2 列后的数组”)

sampleArray = NumPy.delete(sampleArray, 1, 轴 = 1)

打印(样本数组)

arr = NumPy.array([[10,10,10]])

print(“在轴 1 上插入第 2 列后的数组”)

sampleArray = NumPy.insert(sampleArray , 1, arr, 轴 = 1)

打印(样本数组)

数据科学高级认证、250 多个招聘合作伙伴、300 多个学习小时、0% EMI
问题 15:创建一个两个二维数组。 使用 matplotlib 绘制它

解决方案

导入 NumPy

print(“打印原始数组”)

sampleArray = NumPy.array([[34,43,73],[82,22,12],[53,94,66]])

打印(样本数组)

print(“删除轴 1 上的第 2 列后的数组”)

sampleArray = NumPy.delete(sampleArray, 1, 轴 = 1)

打印(样本数组)

arr = NumPy.array([[10,10,10]])

print(“在轴 1 上插入第 2 列后的数组”)

sampleArray = NumPy.insert(sampleArray , 1, arr, 轴 = 1)

打印(样本数组)

结论

我们希望上述 NumPy 面试问题将帮助你为即将到来的面试做准备。 如果您正在寻找可以帮助您掌握 Python 语言的课程,upGrad可能是最好的平台。

如果您想了解数据科学,请查看 IIIT-B 和 upGrad 的在线数据科学计划,该计划专为在职专业人士创建,提供 10 多个案例研究和项目、实用的实践研讨会、行业专家指导、一对一-1 与行业导师,400 多个小时的学习和顶级公司的工作协助。

我们希望这会有所帮助。 祝你面试顺利!

为未来的职业做准备

立即申请数据科学执行 PG 计划