@@ -329,13 +329,18 @@ def _get_counts_nanvar(mask, axis, ddof):
329
329
return count, d
330
330
331
331
332
-
@disallow('M8')
332
+
@disallow('M8','m8')
333
333
@bottleneck_switch(ddof=1)
334
334
def nanvar(values, axis=None, skipna=True, ddof=1):
335
-
if not _is_floating_dtype(values):
336
-
values = values.astype('f8')
335
+
336
+
# we are going to allow timedelta64[ns] here
337
+
# but NOT going to coerce them to the Timedelta type
338
+
# as this could cause overflow
339
+
# so var cannot be computed (but std can!)
337
340
338
341
mask = isnull(values)
342
+
if not _is_floating_dtype(values):
343
+
values = values.astype('f8')
339
344
340
345
count, d = _get_counts_nanvar(mask, axis, ddof)
341
346
@@ -347,13 +352,13 @@ def nanvar(values, axis=None, skipna=True, ddof=1):
347
352
XX = _ensure_numeric((values ** 2).sum(axis))
348
353
return np.fabs((XX - X ** 2 / count) / d)
349
354
350
-
355
+
@disallow('M8','m8')
351
356
def nansem(values, axis=None, skipna=True, ddof=1):
352
357
var = nanvar(values, axis, skipna, ddof=ddof)
353
358
359
+
mask = isnull(values)
354
360
if not _is_floating_dtype(values):
355
361
values = values.astype('f8')
356
-
mask = isnull(values)
357
362
count, _ = _get_counts_nanvar(mask, axis, ddof)
358
363
359
364
return np.sqrt(var)/np.sqrt(count)
@@ -442,12 +447,13 @@ def nanargmin(values, axis=None, skipna=True):
442
447
return result
443
448
444
449
445
-
@disallow('M8')
450
+
@disallow('M8','m8')
446
451
def nanskew(values, axis=None, skipna=True):
452
+
453
+
mask = isnull(values)
447
454
if not _is_floating_dtype(values):
448
455
values = values.astype('f8')
449
456
450
-
mask = isnull(values)
451
457
count = _get_counts(mask, axis)
452
458
453
459
if skipna:
@@ -476,12 +482,13 @@ def nanskew(values, axis=None, skipna=True):
476
482
return result
477
483
478
484
479
-
@disallow('M8')
485
+
@disallow('M8','m8')
480
486
def nankurt(values, axis=None, skipna=True):
487
+
488
+
mask = isnull(values)
481
489
if not _is_floating_dtype(values):
482
490
values = values.astype('f8')
483
491
484
-
mask = isnull(values)
485
492
count = _get_counts(mask, axis)
486
493
487
494
if skipna:
@@ -574,7 +581,7 @@ def _zero_out_fperr(arg):
574
581
return 0 if np.abs(arg) < 1e-14 else arg
575
582
576
583
577
-
@disallow('M8')
584
+
@disallow('M8','m8')
578
585
def nancorr(a, b, method='pearson', min_periods=None):
579
586
"""
580
587
a, b: ndarrays
@@ -621,7 +628,7 @@ def _spearman(a, b):
621
628
return _cor_methods[method]
622
629
623
630
624
-
@disallow('M8')
631
+
@disallow('M8','m8')
625
632
def nancov(a, b, min_periods=None):
626
633
if len(a) != len(b):
627
634
raise AssertionError('Operands to nancov must have same size')
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4