当前位置: 首页 > 面试题库 >

NumPy:以n为底的对数

柯波峻
2023-03-14
问题内容

从有关对数的numpy文档中,我发现了以
e

,2和10为底取对数的函数:

import numpy as np
np.log(np.e**3) #3.0
np.log2(2**3)   #3.0
np.log10(10**3) #3.0

但是,如何在numpy中使用以 n 为底的对数(例如42)?


问题答案:

要使用自定义底数获取对数,请使用math.log

import math
number = 74088  # = 42**3
base = 42
exponent = math.log(number, base)  # = 3

要使用自定义底数获取对数,请使用numpy.log

import numpy as np
array = np.array([74088, 3111696])  # = [42**3, 42**4]
base = 42
exponent = np.log(array) / np.log(base)  # = [3, 4]

如您所料,请注意默认情况下np.log(np.e) == 1.0

提醒一下,对数基数更改规则是:



 类似资料:
  • 问题内容: 我有一个以10为底的数字。是否有将其转换为以62为底的数字? 例: PHP 可以转换为基数36。 问题答案: OLD :一个快速而肮脏的解决方案可以是使用如下函数: 基数转换将您的数字转换为数字为0-9a-p的基数,然后使用快速的char替换摆脱其余的数字。 如您所见,该功能易于逆转。 顺便说一句,您将使用此功能做什么? 编辑: 根据问题的更改和@jnpcl的答案,这是一组函数,它们执

  • 问题内容: 我有一个numpy的数组。我想创建一个新数组,该数组是每个连续三元组元素的平均值。因此,新数组将是原始数组大小的三分之一。 举个例子: 应该返回数组: 有人可以建议一种有效的方法吗?我在画空白。 问题答案: 如果数组的长度可被3整除: 重塑为高维数组,然后对附加维之一执行某种形式的归约运算是numpy编程的主要内容。

  • 问题内容: 我使用以下函数为整数计算对数基数2: 它是否具有最佳性能? 有人知道为此目的准备好了J2SE API函数吗? UPD1 对于我来说,令人惊讶的是,浮点运算似乎比整数运算要快。 UPD2 由于有评论,我将进行更详细的调查。 UPD3 我的整数算术函数比Math.log(n)/Math.log(2)快10倍。 问题答案: 如果您正在考虑使用浮点数来帮助进行整数运算,则必须小心。 我通常会尽

  • 我想知道在C中是否有特定的算法来做到这一点。然而,我想出了一些方法。 问题是:我有两个7进制的数字。这些数字是可以整除的,所以我的答案总是整数。我想计算一下商。 最简单的方法可能是将以10为底的两个数字从以7为底转换为以10为底的两个数字,然后使用/运算符进行正常除法,然后将答案重新转换回以7为底。 这种方法有很多缺点,时间消耗过多,主要是溢出。如果divident的长度超过大约(17-19),则

  • 我不确定numpy中(N,)和(N,1)之间的区别。假设两者都是一些特征,它们具有相同的N维,并且都有一个样本。有什么区别?

  • 问题内容: 我对(N,)维数组和(N,1)维数组之间的转换有疑问。例如,y是(2,)维。 但是下面将显示y2为(2,1)维。 在不复制的情况下将y2转换回y的最有效方法是什么? 谢谢汤姆 问题答案: 为此工作 还请注意,除非需要复制新形状(在这里不需要这样做),否则它不会复制数据: