Numpy: adding n-dimensional vector to m-dimensional vector to get (n, m) matrix












1















Suppose I have the array [1,2,3,4,5].
I want to "add" the array [2,4,6,8] to it so I get



[[3,5,7,9],
[4,6,8,10],
[5,7,9,11],
[6,8,10,12],
[7,9,11,13]]


(or its transpose).



There is probably a function for this but I can't seem to find it because I'm not sure what to search for.










share|improve this question























  • Search for outer add.

    – Divakar
    Nov 23 '18 at 17:00











  • Great, thank you!

    – J. doe
    Nov 23 '18 at 17:53
















1















Suppose I have the array [1,2,3,4,5].
I want to "add" the array [2,4,6,8] to it so I get



[[3,5,7,9],
[4,6,8,10],
[5,7,9,11],
[6,8,10,12],
[7,9,11,13]]


(or its transpose).



There is probably a function for this but I can't seem to find it because I'm not sure what to search for.










share|improve this question























  • Search for outer add.

    – Divakar
    Nov 23 '18 at 17:00











  • Great, thank you!

    – J. doe
    Nov 23 '18 at 17:53














1












1








1








Suppose I have the array [1,2,3,4,5].
I want to "add" the array [2,4,6,8] to it so I get



[[3,5,7,9],
[4,6,8,10],
[5,7,9,11],
[6,8,10,12],
[7,9,11,13]]


(or its transpose).



There is probably a function for this but I can't seem to find it because I'm not sure what to search for.










share|improve this question














Suppose I have the array [1,2,3,4,5].
I want to "add" the array [2,4,6,8] to it so I get



[[3,5,7,9],
[4,6,8,10],
[5,7,9,11],
[6,8,10,12],
[7,9,11,13]]


(or its transpose).



There is probably a function for this but I can't seem to find it because I'm not sure what to search for.







numpy numpy-broadcasting numpy-ndarray






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 23 '18 at 16:59









J. doeJ. doe

61




61













  • Search for outer add.

    – Divakar
    Nov 23 '18 at 17:00











  • Great, thank you!

    – J. doe
    Nov 23 '18 at 17:53



















  • Search for outer add.

    – Divakar
    Nov 23 '18 at 17:00











  • Great, thank you!

    – J. doe
    Nov 23 '18 at 17:53

















Search for outer add.

– Divakar
Nov 23 '18 at 17:00





Search for outer add.

– Divakar
Nov 23 '18 at 17:00













Great, thank you!

– J. doe
Nov 23 '18 at 17:53





Great, thank you!

– J. doe
Nov 23 '18 at 17:53












1 Answer
1






active

oldest

votes


















0














As suggested by @Divakar, the best way is to use add.outer:



a1 = np.array([1,2,3,4,5])
a2 = np.array([2,4,6,8])

np.add.outer(a1,a2)


But you can also explicitely broadcast your a1 array to the proper shape, then add to a2:



a1[:,None]+a2
# essentially equivalent to:
# a1.reshape(-1,1)+a2


Both produce:



array([[ 3,  5,  7,  9],
[ 4, 6, 8, 10],
[ 5, 7, 9, 11],
[ 6, 8, 10, 12],
[ 7, 9, 11, 13]])





share|improve this answer
























  • Thank you! This is exactly what I was looking for.

    – J. doe
    Nov 23 '18 at 17:54











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53450520%2fnumpy-adding-n-dimensional-vector-to-m-dimensional-vector-to-get-n-m-matrix%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














As suggested by @Divakar, the best way is to use add.outer:



a1 = np.array([1,2,3,4,5])
a2 = np.array([2,4,6,8])

np.add.outer(a1,a2)


But you can also explicitely broadcast your a1 array to the proper shape, then add to a2:



a1[:,None]+a2
# essentially equivalent to:
# a1.reshape(-1,1)+a2


Both produce:



array([[ 3,  5,  7,  9],
[ 4, 6, 8, 10],
[ 5, 7, 9, 11],
[ 6, 8, 10, 12],
[ 7, 9, 11, 13]])





share|improve this answer
























  • Thank you! This is exactly what I was looking for.

    – J. doe
    Nov 23 '18 at 17:54
















0














As suggested by @Divakar, the best way is to use add.outer:



a1 = np.array([1,2,3,4,5])
a2 = np.array([2,4,6,8])

np.add.outer(a1,a2)


But you can also explicitely broadcast your a1 array to the proper shape, then add to a2:



a1[:,None]+a2
# essentially equivalent to:
# a1.reshape(-1,1)+a2


Both produce:



array([[ 3,  5,  7,  9],
[ 4, 6, 8, 10],
[ 5, 7, 9, 11],
[ 6, 8, 10, 12],
[ 7, 9, 11, 13]])





share|improve this answer
























  • Thank you! This is exactly what I was looking for.

    – J. doe
    Nov 23 '18 at 17:54














0












0








0







As suggested by @Divakar, the best way is to use add.outer:



a1 = np.array([1,2,3,4,5])
a2 = np.array([2,4,6,8])

np.add.outer(a1,a2)


But you can also explicitely broadcast your a1 array to the proper shape, then add to a2:



a1[:,None]+a2
# essentially equivalent to:
# a1.reshape(-1,1)+a2


Both produce:



array([[ 3,  5,  7,  9],
[ 4, 6, 8, 10],
[ 5, 7, 9, 11],
[ 6, 8, 10, 12],
[ 7, 9, 11, 13]])





share|improve this answer













As suggested by @Divakar, the best way is to use add.outer:



a1 = np.array([1,2,3,4,5])
a2 = np.array([2,4,6,8])

np.add.outer(a1,a2)


But you can also explicitely broadcast your a1 array to the proper shape, then add to a2:



a1[:,None]+a2
# essentially equivalent to:
# a1.reshape(-1,1)+a2


Both produce:



array([[ 3,  5,  7,  9],
[ 4, 6, 8, 10],
[ 5, 7, 9, 11],
[ 6, 8, 10, 12],
[ 7, 9, 11, 13]])






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 23 '18 at 17:14









saculsacul

30k41740




30k41740













  • Thank you! This is exactly what I was looking for.

    – J. doe
    Nov 23 '18 at 17:54



















  • Thank you! This is exactly what I was looking for.

    – J. doe
    Nov 23 '18 at 17:54

















Thank you! This is exactly what I was looking for.

– J. doe
Nov 23 '18 at 17:54





Thank you! This is exactly what I was looking for.

– J. doe
Nov 23 '18 at 17:54


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53450520%2fnumpy-adding-n-dimensional-vector-to-m-dimensional-vector-to-get-n-m-matrix%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Sphinx de Gizeh

Dijon

Langue