python - 如何在 NumPy 一维数组上应用具有不同参数的函数来制作二维数组
问题描述
假设我有一个 NumPy 1d-array a
:
a = np.array([1, 2, 3])
我有一个功能foo
:
def foo(x, p):
...
return y
我想申请foo
,a
比如说,p
从 1 到 3 来制作一个二维数组。
解决方案
要不就:
>>> a[:, None] ** np.arange(1, 4)
array([[ 1, 1, 1],
[ 2, 4, 8],
[ 3, 9, 27]], dtype=int32)
>>>
有一个功能:
def foo(x, p):
return x ** p
np.apply_along_axis(lambda x: foo(x, np.arange(1, 4)), 1, a[:, None])
array([[ 1, 1, 1],
[ 2, 4, 8],
[ 3, 9, 27]], dtype=int32)
推荐阅读
- java - 广播接收器未在 Android Pie 中注册(工作)
- android - 如何在奥利奥中杀死应用程序时取消正在进行的通知?
- java - Java:DateTimeFormatter 解析具有不同位数的毫秒时间戳
- airflow - 气流调度程序错误:将线程最大值设置为 1
- bash - 如何修复使用 ssh 执行远程命令的循环
- python - 使用 ClipsPy 以编程方式修改事实槽
- hive - Jinja:调用 Hive (Airflow) 时出现未定义错误
- python - python不会将日期字符串转换为日期时间
- python - 使用 python pandas 如何进行一些分析以识别有效的手机号码
- mysql - 如何在 Mysql 中取消透视下表?[要求更好的方法]