假设我有以下基本if语句:
if (A ~= 0)
% do something like divide your favorite number by A
else
% do something like return NaN or infinity
end
Run Code Online (Sandbox Code Playgroud)
问题是A不是简单的数字而是矢量.如果A中没有元素为0,则Matlab返回true.我要找的是向量化的吗?对A中每个元素执行上述if语句的方法
实际上,我只想尽快做到这一点.
从这些数组:
t = ["A","B","C"]
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得这样的列表
[
{ 'A':1, 'B':4, 'C':7},
{ 'A':2, 'B':5, 'C':8},
{ 'A':3, 'B':6, 'C':9},
]
Run Code Online (Sandbox Code Playgroud)
这样在JSON中转储更有用吗?
我[x, y, ...]在Octave中有一个向量,我想采用元素的pth幂来获得新的向量[x^p, y^p, ...].任何人都知道如何做到这一点?
我有cv::Mat A,有CV_32F.但它保存整数值,如1,2 .... 100.我想形成一个大小相同的面具A.
但是如果A(x,y)不等于5(假设),则掩码必须包含零.如果A(x,y)等于5(假设),则掩码必须包含1.
我想稍后将其用作ROI.
我有一个密列矩阵y的大小(m,1)和稀疏矩阵x大小(m,n)。
我想使用y和 的每一列进行元素乘法x。
生成的稀疏矩阵的大小仍然为(m,n)。
Sparse matrixx加载到内存时大约为 10GB。
可以spfun帮助我以高效记忆的方式实现我的目标吗?
我很难理解它背后的逻辑。
谢谢你。
如果我有一个带有随机值的数组A,我想为每个长度为A的i定义一个数组B. B[i] = (A[i])²
首先,我尝试了以下代码:
using Distributions
A = rand(Uniform(1,10),1,20)
B = A
for i in 1:20
B[i] = (A[i])^2
end
Run Code Online (Sandbox Code Playgroud)
在这些操作之后,我有A = B.
A
1×20 Array{Float64,2}:
26.0478 5.36654 99.675 23.18 … 1.54846 91.3444 9.41496 2.91666
B
1×20 Array{Float64,2}:
26.0478 5.36654 99.675 23.18 … 1.54846 91.3444 9.41496 2.91666
Run Code Online (Sandbox Code Playgroud)
所以我尝试了另一种方法:
B = A^2
Run Code Online (Sandbox Code Playgroud)
有以下错误:
ERROR: DimensionMismatch("A has dimensions (1,20) but B has dimensions (1,20)")
Run Code Online (Sandbox Code Playgroud)
例如,如果我这样做,B = 2*A它可以正常工作......
一些想法有所帮助?
谢谢
我正在使用 Python 3.7 和 numpy 1.15.2,并且在元素乘法中遇到了我不理解的行为。以下对我来说很直观:
import numpy as np
a = np.array([[30000,4000]])
b = np.array([[70000,8000]])
np.multiply(a,b)
Run Code Online (Sandbox Code Playgroud)
给
array([[2100000000,32000000]])
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时
a = np.array([[30000,40000]])
b = np.array([[70000,80000]])
np.multiply(a,b)
Run Code Online (Sandbox Code Playgroud)
我得到
array([[ 2100000000, -1094967296]])
Run Code Online (Sandbox Code Playgroud)
我猜结果应该是数组([[ 30000*70000, 40000*80000]])。负数从何而来?我该怎么做才能得到预期的数组?
I want to realize component-wise matrix multiplication in MATLAB, which can be done using numpy.einsum in Python as below:
import numpy as np
M = 2
N = 4
I = 2000
J = 300
A = np.random.randn(M, M, I)
B = np.random.randn(M, M, N, J, I)
C = np.random.randn(M, J, I)
# using einsum
D = np.einsum('mki, klnji, lji -> mnji', A, B, C)
# naive for-loop
E = np.zeros(M, N, J, I)
for i in range(I):
for j …Run Code Online (Sandbox Code Playgroud) matlab sum multidimensional-array elementwise-operations numpy-einsum
我有两个带有字符串的列表,我想将它们按元素连接到 anxn 矩阵中。我已经尝试了下面的代码,但这只给了我 nx 1 个列表。
row = ['a','b','c']
col = ['a','b','c']
matrix = map(''.join, zip(row,col))
Run Code Online (Sandbox Code Playgroud)
预期输出将是这样的矩阵:
[['aa','ab','ac'],
['ba','bb','bc'],
['ca','cb','cc']])
Run Code Online (Sandbox Code Playgroud)
是否有使用常规 python 或 numpy 来完成此操作的解决方案?
我有一本看起来像这样的字典:
d= {'GAAP':[True,True],'L1':[True,False],'L2':[True,True]}
Run Code Online (Sandbox Code Playgroud)
我想对字典中的每个值执行逻辑 AND 运算并返回True/False 值的列表。就像是:
for counter in range(0,2):
print(d['GAAP'][counter] & d['L1'][counter] & d['L2'][counter])
Run Code Online (Sandbox Code Playgroud)
我的字典相当大,所以想避免手动输入每个键来执行逻辑 AND。
arrays ×4
matlab ×4
python ×4
numpy ×2
broadcasting ×1
c++ ×1
dictionary ×1
if-statement ×1
julia ×1
mask ×1
matrix ×1
numpy-einsum ×1
octave ×1
opencv ×1
roi ×1
sum ×1