- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有没有办法使用 numpy ufunc.at(特别是 add.at)来连接字符串数组? add.at 或 char.add.at 都不能用于字符串/字符数组。
该方法需要处理n维数组,所以先根据索引拆分再join不太理想
a = np.array(['a', 'b'])
ixs = np.array([0, 1, 1])
vals = np.array(['e', 'f', 'g])
# Neither of these options work
np.add.at(a, ixs, vals)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-29-fb8e3bd48930> in <module>()
2 ixs = np.array([0, 1])
3 vals = np.array(['e', 'e'])
----> 4 np.add.at(a, ixs, vals)
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U1') dtype('<U1') dtype('<U1')
np.char.add.at(a, ixs, vals)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-30-e1bb1f7868dd> in <module>()
2 ixs = np.array([0, 1])
3 vals = np.array(['e', 'e'])
----> 4 np.char.add.at(a, ixs, vals)
AttributeError: 'function' object has no attribute 'at'
期望的输出:['ae', 'bfg']
非常感谢!
最佳答案
In [279]: a = np.array(['a', 'b'])
...: ixs = np.array([0, 1, 1])
...: vals = np.array(['e', 'f', 'g'])
...:
你的错误:
In [280]: np.char.add.at(a, ixs, vals)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-280-f06ad4d86cfb> in <module>
----> 1 np.char.add.at(a, ixs, vals)
AttributeError: 'function' object has no attribute 'at'
In [281]: np.add.at(a, ixs, vals)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-281-683423808141> in <module>
----> 1 np.add.at(a, ixs, vals)
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U1') dtype('<U1') dtype('<U1')
但让我们尝试使用对象数据类型数组add.at
。
In [282]: ao=a.astype(object)
In [283]: ao
Out[283]: array(['a', 'b'], dtype=object)
In [284]: vo=vals.astype(object)
In [285]: vo
Out[285]: array(['e', 'f', 'g'], dtype=object)
In [286]: np.add.at(ao, ixs, vo)
In [287]: ao
Out[287]: array(['ae', 'bfg'], dtype=object)
numpy
ufuncs 倾向于(总是?)通过将操作委托(delegate)给对象的相应方法来操作对象 dtype 数组。 add
是为 Python 字符串定义的,因此 add.at
可以按需要工作。
关于python - 带有字符数组的 Numpy ufunc.at,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56241798/
有没有办法判断一个 ndarray 子类的 __array_wrap__是用一元函数还是二元函数调用的? (另一个 reference ) 最佳答案 这只是部分答案: ufunc 的参数作为元组传递给
算术 numpy 表达式的内存消耗是多少 vec ** 3 + vec ** 2 + vec (vec 是 numpy.ndarray)。是否为每个中间操作存储一个数组?这样的复合表达式是否可以比底层
假设我有以下 numpy 数组: >>> a=np.zeros(10) >>> a array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
使用 numpy ndarray大多数时候我们不需要担心内存布局的问题,因为结果并不依赖于它。 除非他们这样做。例如,考虑这种设置 3x2 矩阵对角线的稍微过度设计的方法 >>> a = np.zer
我当然可以 a[a == 0] = something 将 a 中每个等于 0 的条目设置为 something。同样,我可以写 a[np.equal(a, 0)] = something 现在,想象
我当然可以 a[a == 0] = something 将 a 中每个等于 0 的条目设置为 something。同样,我可以写 a[np.equal(a, 0)] = something 现在,想象
有没有办法使用 numpy ufunc.at(特别是 add.at)来连接字符串数组? add.at 或 char.add.at 都不能用于字符串/字符数组。 该方法需要处理n维数组,所以先根据索引拆
我正在尝试使用 MPI 将模块广播到其他 python 进程。当然,模块本身不可 pickle ,但 __dict__ 可以。目前,我正在 pickle __dict__ 并在接收过程中制作一个新模块
有没有一个ufunc只转发数据? 在大多数情况下实现相同的效果并不困难,但有时在显式使用 ufunc 时,使用仅转发数据的函数会很方便。主要用于测试/调试并具有一致的代码外观。 例如,当我有一个接受
在我跟踪粒子路径的程序中,出现以下错误: Traceback (most recent call last): File "C:\Users\Felix\Google Drive\Research
我正在慢慢学习一些机器学习,但在一次使用计算机视觉对 kaggle 猫狗数据集进行练习时,发生了一些我不太明白的事情。 然后当我尝试规范化 pickle 中的图像值时,它在编写时起作用 X = X/2
我使用 Anaconda 和 gdsCAD,当所有软件包都正确安装时出现错误。就像这里解释的那样:http://pythonhosted.org/gdsCAD/ TypeError: ufunc 'a
基本上我有一个在 npy_cdouble 上运行的 numpy ufunc和npy_cfloat数组。例如: static void ufunc_H( char ** args , np
我想知道 r = ufct.identity 在函数 ufunc_reduce 中做了什么。它是否只是像 r = 0 一样初始化操作? a = np.array([2,3,4,5]) b = np.a
这个问题有关于使用输入作为输出来使用 numpy.ufunc 计算某些东西的信息: Numpy passing input array as `out` argument to ufunc 是否可以避
假设我们有一个接受 Numpy 数组并返回另一个数组的 Python 函数: import numpy as np def f(x, y, method='p'): """Parameters
我看到 Universal Function(ufunc) 用于执行按元素的数组操作。 arr = np.arange(5) arr2 = np.arange(5,10) np.add(arr,
我觉得 numpy.power 没有轴参数很奇怪……是因为有更好/更安全的方法来实现相同的目标(将 3D 数组中的每个 2D 数组提升为 1D 数组的幂) . 假设您有一个 (3,10,10) 数组
我有一个 numpy 数组,我想找到它的最大元素,所以我调用: x = foo.max() 问题是 foo 有时是一个空数组,max 函数(可以理解)抛出: ValueError: zero-size
我很好奇使用 numpy 的好处和权衡 ufuncs vs. 内置运算符 vs. 内置运算符的“函数”版本。 我对所有 ufunc 都很好奇。也许有些时候有些比其他更有用。但是,我将使用 >> x =
我是一名优秀的程序员,十分优秀!