शायद मैं कुछ गलत कर रहा हूं जबकि z-normalizing मेरी सरणी। क्या कोई इसे देख सकता है और सुझाव दे रहा है कि क्या हो रहा है?आर और पायथन के बीच आउटपुट मूल्य भिन्न हैं?
आर में:
> data <- c(2.02, 2.33, 2.99, 6.85, 9.20, 8.80, 7.50, 6.00, 5.85, 3.85, 4.85, 3.85, 2.22, 1.45, 1.34)
> data.mean <- mean(data)
> data.sd <- sqrt(var(data))
> data.norm <- (data - data.mean)/data.sd
> print(data.norm)
[1] -0.9796808 -0.8622706 -0.6123005 0.8496459 1.7396910 1.5881940 1.0958286 0.5277147 0.4709033 -0.2865819
[11] 0.0921607 -0.2865819 -0.9039323 -1.1955641 -1.2372258
अजगर में numpy का उपयोग कर:
>>> import string
>>> import numpy as np
>>> from scipy.stats import norm
>>> data = np.array([np.array([2.02, 2.33, 2.99, 6.85, 9.20, 8.80, 7.50, 6.00, 5.85, 3.85, 4.85, 3.85, 2.22, 1.45, 1.34])])
>>> data -= np.split(np.mean(data, axis=1), data.shape[0])
>>> data *= np.split(1.0/data.std(axis=1), data.shape[0])
>>> print data
[[-1.01406602 -0.89253491 -0.63379126 0.87946705 1.80075126 1.64393692
1.13429034 0.54623659 0.48743122 -0.29664045 0.09539539 -0.29664045
-0.93565885 -1.23752644 -1.28065039]]
मैं numpy
गलत तरीके से उपयोग कर रहा हूँ?
आप किसी अन्य np.array के अंदर np.array के रूप में 'डेटा' क्यों सेट कर रहे हैं? –
@ ह्यूग बॉथवेल: ओह ... मैंने उसे नोटिस नहीं किया। यह कोड के एक बड़े टुकड़े से सरलीकृत किया गया था जहां डेटा सरणी की सरणी थी। – Legend
बस रिकॉर्ड के लिए, आर में आप 'data.norm <- पैमाने (डेटा, केंद्र = TRUE, स्केल = TRUE)' – Marius