Averaging over columns while ignoring zero entries
$begingroup$
I have:
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0},
{1, 0, 2, 2, 2, 4, 0}}
I want to calculate the average but without considering the 0s.
The result should be:
Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];
result // N
{2., 3., 3., 4., 4., 3., 9.}
How can I replace the Do
loop?
list-manipulation
$endgroup$
add a comment |
$begingroup$
I have:
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0},
{1, 0, 2, 2, 2, 4, 0}}
I want to calculate the average but without considering the 0s.
The result should be:
Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];
result // N
{2., 3., 3., 4., 4., 3., 9.}
How can I replace the Do
loop?
list-manipulation
$endgroup$
1
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
13 hours ago
$begingroup$
Thank you for the solution.
$endgroup$
– lio
13 hours ago
$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
13 hours ago
4
$begingroup$
I'm not at a computer right now, so please tryTotal[list]/Total[Unitize[list]]
.
$endgroup$
– J. M. is computer-less♦
13 hours ago
$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
10 hours ago
add a comment |
$begingroup$
I have:
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0},
{1, 0, 2, 2, 2, 4, 0}}
I want to calculate the average but without considering the 0s.
The result should be:
Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];
result // N
{2., 3., 3., 4., 4., 3., 9.}
How can I replace the Do
loop?
list-manipulation
$endgroup$
I have:
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0},
{1, 0, 2, 2, 2, 4, 0}}
I want to calculate the average but without considering the 0s.
The result should be:
Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];
result // N
{2., 3., 3., 4., 4., 3., 9.}
How can I replace the Do
loop?
list-manipulation
list-manipulation
edited 10 hours ago
m_goldberg
87.4k872198
87.4k872198
asked 13 hours ago
liolio
1,108217
1,108217
1
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
13 hours ago
$begingroup$
Thank you for the solution.
$endgroup$
– lio
13 hours ago
$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
13 hours ago
4
$begingroup$
I'm not at a computer right now, so please tryTotal[list]/Total[Unitize[list]]
.
$endgroup$
– J. M. is computer-less♦
13 hours ago
$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
10 hours ago
add a comment |
1
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
13 hours ago
$begingroup$
Thank you for the solution.
$endgroup$
– lio
13 hours ago
$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
13 hours ago
4
$begingroup$
I'm not at a computer right now, so please tryTotal[list]/Total[Unitize[list]]
.
$endgroup$
– J. M. is computer-less♦
13 hours ago
$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
10 hours ago
1
1
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
13 hours ago
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
13 hours ago
$begingroup$
Thank you for the solution.
$endgroup$
– lio
13 hours ago
$begingroup$
Thank you for the solution.
$endgroup$
– lio
13 hours ago
$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
13 hours ago
$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
13 hours ago
4
4
$begingroup$
I'm not at a computer right now, so please try
Total[list]/Total[Unitize[list]]
.$endgroup$
– J. M. is computer-less♦
13 hours ago
$begingroup$
I'm not at a computer right now, so please try
Total[list]/Total[Unitize[list]]
.$endgroup$
– J. M. is computer-less♦
13 hours ago
$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
10 hours ago
$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
10 hours ago
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
{2,3,3,4,4,3,9}
$endgroup$
add a comment |
$begingroup$
I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
Total[list]/Total[Unitize[list]]
{2, 3, 3, 4, 4, 3, 9}
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192881%2faveraging-over-columns-while-ignoring-zero-entries%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
{2,3,3,4,4,3,9}
$endgroup$
add a comment |
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
{2,3,3,4,4,3,9}
$endgroup$
add a comment |
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
{2,3,3,4,4,3,9}
$endgroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
{2,3,3,4,4,3,9}
answered 13 hours ago
MarcoBMarcoB
37.2k556113
37.2k556113
add a comment |
add a comment |
$begingroup$
I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
Total[list]/Total[Unitize[list]]
{2, 3, 3, 4, 4, 3, 9}
$endgroup$
add a comment |
$begingroup$
I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
Total[list]/Total[Unitize[list]]
{2, 3, 3, 4, 4, 3, 9}
$endgroup$
add a comment |
$begingroup$
I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
Total[list]/Total[Unitize[list]]
{2, 3, 3, 4, 4, 3, 9}
$endgroup$
I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
Total[list]/Total[Unitize[list]]
{2, 3, 3, 4, 4, 3, 9}
answered 10 hours ago
community wiki
m_goldberg
add a comment |
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192881%2faveraging-over-columns-while-ignoring-zero-entries%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
1
$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
13 hours ago
$begingroup$
Thank you for the solution.
$endgroup$
– lio
13 hours ago
$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
13 hours ago
4
$begingroup$
I'm not at a computer right now, so please try
Total[list]/Total[Unitize[list]]
.$endgroup$
– J. M. is computer-less♦
13 hours ago
$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
10 hours ago