我知道Julia可以在v0.6中通过f.(x)将元素方式参数应用于函数
x = [1, 2, 3]
f = x->3x
@assert f.(x) = [3, 6, 9]
Run Code Online (Sandbox Code Playgroud)
现在,我将f定义为Array {Function,1}.
f1(x) = 3x
f2(x) = 4x
f = [f1, f2]
x = 2
@assert isa(f, Array{Function,1}) == true
# f.(x) is unavailable
Run Code Online (Sandbox Code Playgroud)
我想将参数应用于元素方面的函数,如上面的语法,而不是使用map,[_f(x) for _f in f]
有人可以熟悉这个问题吗?
假设我有一个矩阵A = rand(2,14,24)和一个向量x = 10*1(1,14)
我想要A和x的元素乘法,使得对于所有j = 1,2,...,B(i,j,k)= A(i,j,k)*x(j).我希望能够在不运行循环的情况下完成此操作.在matlab中执行此操作的最有效方法是什么?
我有两个相同形状的numpy数组.数组中的元素是[0,N]的随机整数.我需要检查数组中相同位置的哪些元素(如果有)是相等的.
我需要的输出是相同元素的位置.
模拟代码:
A=np.array([0,1])
B=np.array([1,0])
C=np.array([1,1])
np.any_elemenwise(A,B)
np.any_elemenwise(A,C)
np.any_elemenwise(A,A)
Run Code Online (Sandbox Code Playgroud)
期望的输出:
[]
[1]
[0,1]
Run Code Online (Sandbox Code Playgroud)
我可以逐个编写一个遍历所有元素的循环,但我认为可以更快地实现所需的输出.
python arrays numpy boolean-operations elementwise-operations
我一直在网站上寻找我的问题的答案,我是R的新人,所以我希望这是可能的.我有两个大型模拟矩阵(A = 100,000 x 50和B = 10,000 x 50),我想逐行地逐行乘法.
基本上我希望A中的每一行从B中随机选择一行以进行逐元素乘法.
A:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 1 1 1 1
[3,] 1 1 1 1 1
[4,] 1 1 1 1 1
[5,] 1 1 1 1 1
[6,] 1 1 1 1 1
[7,] 1 1 1 1 1
[8,] 1 1 1 1 1
[9,] 1 1 1 1 1
[10,] 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
而且B:
[,1] [,2] [,3] …Run Code Online (Sandbox Code Playgroud) 是否有类似于 MATLABs“cellfun”的 python 或 numpy 方法?我想将一个函数应用于一个对象,该对象是一个 MATLAB 元胞数组,具有不同长度的 ~300k 元胞。
一个非常简单的例子:
>>> xx = [(4,2), (1,2,3)]
>>> yy = np.exp(xx)
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
yy = np.exp(xx)
AttributeError: 'tuple' object has no attribute 'exp'
Run Code Online (Sandbox Code Playgroud) 在Swift中有一个简洁的方法是通过对另外两个数组的元素应用二进制运算来创建数组吗?
例如:
let a = [1, 2, 3]
let b = [4, 5, 6]
let c = (0..<3).map{a[$0]+b[$0]} // c = [5, 7, 9]
Run Code Online (Sandbox Code Playgroud) 这似乎是一件简单的事情,但我无法弄清楚......
first = np.array([0,1,2,0,4,2])
second = np.array([1,2])
Run Code Online (Sandbox Code Playgroud)
我想做逐元素比较,以便答案是
array([False, True, True, False, False, True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
基本上,我想可以说True每个中的元素first,这也是中second。所以如果first有 100 个元素,那么输出也应该有 100 个元素。但我无法弄清楚如何。我试过使用np.equal, np.any,first==np.any(second)但无济于事。当然,我可以写一个循环来做到这一点,但我知道必须有一种方法来完成这个相对简单的任务!
我有一个问题。
向量 A 是查询,向量 B 是参考。
我想看看 A 的哪个值最接近 B 值之一。
两个向量都是有序的。
输入
A = c(1, 1.2, 4, 8, 9, 10, 30)
B = c(0.1, 3.9)
Run Code Online (Sandbox Code Playgroud)
输出
min_diff_value = 0.1
min_value_A = 4
min_value_B = 3.9 (optionnal)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有技巧可以在没有耗时循环的情况下执行此操作?
谢谢你。
我有一个名为 list_6 的嵌套列表:
[[-1, 1, -1, 1, -1, 1, 1, 0, -1, 0, -1, -1, 1, 1, 1, 0, 1, -1, -1, -1 , 1, 1, 1, 0, 0, -1, 0, 0, 0, 1, 0, -1, 1, 1, -1, 0, 0, 1, 1, -1, 0, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1],...]]
列表的每个元素包含-1,1中的整数,并且元素长度不等,列表中有20个元素
我想创建一个名为 list_7 的新列表,如下所示:
[[13],[4],[5],...]],以便对嵌套列表中的每个元素求和,并打印结果。我尝试使用 iter.zip_longest:
[sum(i) for i in itertools.zip_longest(*list_6, fillvalue=0)]
但我得到一个错误函数:
“str”对象不可调用
前言:按元素添加2个列表?
我想写代码以具有以下行为:
[ 1, 1, ["Alpha"]]
+
[ 2, 2, ["Beta"] ]
|| || ||
\/ \/ \/
[3, 3, ["Alpha", "Beta"]]
Run Code Online (Sandbox Code Playgroud)
在python中.这可能没有非常混乱的理解和映射吗?
编辑:我想我更需要的答案是一个可以按组件添加并且无论类型如何都可以运行的答案.出于此目的,使用__CODE__是@COLDSPEED最初声明的最佳答案.
所以,我有两个清单:
x =[170 169 168 167 166 165 183 201 219 237 255 274 293 312 331 350]
y =[201,168]
Run Code Online (Sandbox Code Playgroud)
我想写一个条件if语句,只有当所有内容y都在时才是真的x.我该怎么做呢?
EG - assert(y[0] in x)和assert(y[a] in x)两个给True,但assert(y in x)给人False.同样,assert( any(y) in x )也会引发错误.
python ×6
numpy ×3
arrays ×2
r ×2
comparison ×1
conditional ×1
difference ×1
if-statement ×1
julia ×1
list ×1
matlab ×1
matrix ×1
minimum ×1
nested-lists ×1
random ×1
strerror ×1
sum ×1
swift ×1
vector ×1