Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

""" 

Contains the core of NumPy: ndarray, ufuncs, dtypes, etc. 

 

Please note that this module is private. All functions and objects 

are available in the main ``numpy`` namespace - use that instead. 

 

""" 

 

from numpy.version import version as __version__ 

 

import os 

 

# disables OpenBLAS affinity setting of the main thread that limits 

# python threads or processes to one core 

env_added = [] 

for envkey in ['OPENBLAS_MAIN_FREE', 'GOTOBLAS_MAIN_FREE']: 

if envkey not in os.environ: 

os.environ[envkey] = '1' 

env_added.append(envkey) 

 

try: 

from . import multiarray 

except ImportError as exc: 

import sys 

msg = """ 

 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! 

 

Importing the numpy C-extensions failed. This error can happen for 

many reasons, often due to issues with your setup or how NumPy was 

installed. 

 

We have compiled some common reasons and troubleshooting tips at: 

 

https://numpy.org/devdocs/user/troubleshooting-importerror.html 

 

Please note and check the following: 

 

* The Python version is: Python%d.%d from "%s" 

* The NumPy version is: "%s" 

 

and make sure that they are the versions you expect. 

Please carefully study the documentation linked above for further help. 

 

Original error was: %s 

""" % (sys.version_info[0], sys.version_info[1], sys.executable, 

__version__, exc) 

raise ImportError(msg) 

finally: 

for envkey in env_added: 

del os.environ[envkey] 

del envkey 

del env_added 

del os 

 

from . import umath 

 

# Check that multiarray,umath are pure python modules wrapping 

# _multiarray_umath and not either of the old c-extension modules 

if not (hasattr(multiarray, '_multiarray_umath') and 

hasattr(umath, '_multiarray_umath')): 

import sys 

path = sys.modules['numpy'].__path__ 

msg = ("Something is wrong with the numpy installation. " 

"While importing we detected an older version of " 

"numpy in {}. One method of fixing this is to repeatedly uninstall " 

"numpy until none is found, then reinstall this version.") 

raise ImportError(msg.format(path)) 

 

from . import numerictypes as nt 

multiarray.set_typeDict(nt.sctypeDict) 

from . import numeric 

from .numeric import * 

from . import fromnumeric 

from .fromnumeric import * 

from . import defchararray as char 

from . import records as rec 

from .records import * 

from .memmap import * 

from .defchararray import chararray 

from . import function_base 

from .function_base import * 

from . import machar 

from .machar import * 

from . import getlimits 

from .getlimits import * 

from . import shape_base 

from .shape_base import * 

from . import einsumfunc 

from .einsumfunc import * 

del nt 

 

from .fromnumeric import amax as max, amin as min, round_ as round 

from .numeric import absolute as abs 

 

# do this after everything else, to minimize the chance of this misleadingly 

# appearing in an import-time traceback 

from . import _add_newdocs 

# add these for module-freeze analysis (like PyInstaller) 

from . import _dtype_ctypes 

from . import _internal 

from . import _dtype 

from . import _methods 

 

__all__ = ['char', 'rec', 'memmap'] 

__all__ += numeric.__all__ 

__all__ += fromnumeric.__all__ 

__all__ += rec.__all__ 

__all__ += ['chararray'] 

__all__ += function_base.__all__ 

__all__ += machar.__all__ 

__all__ += getlimits.__all__ 

__all__ += shape_base.__all__ 

__all__ += einsumfunc.__all__ 

 

# Make it possible so that ufuncs can be pickled 

# Here are the loading and unloading functions 

# The name numpy.core._ufunc_reconstruct must be 

# available for unpickling to work. 

def _ufunc_reconstruct(module, name): 

# The `fromlist` kwarg is required to ensure that `mod` points to the 

# inner-most module rather than the parent package when module name is 

# nested. This makes it possible to pickle non-toplevel ufuncs such as 

# scipy.special.expit for instance. 

mod = __import__(module, fromlist=[name]) 

return getattr(mod, name) 

 

def _ufunc_reduce(func): 

from pickle import whichmodule 

name = func.__name__ 

return _ufunc_reconstruct, (whichmodule(func, name), name) 

 

 

import copyreg 

 

copyreg.pickle(ufunc, _ufunc_reduce, _ufunc_reconstruct) 

# Unclutter namespace (must keep _ufunc_reconstruct for unpickling) 

del copyreg 

del _ufunc_reduce 

 

from numpy._pytesttester import PytestTester 

test = PytestTester(__name__) 

del PytestTester