在本文中,我们将为您详细介绍Pythonnumpy模块-geterr()实例源码的相关知识,并且为您解答关于python中numpy模块的疑问,此外,我们还会提供一些关于Jupyter中的Numpy在
在本文中,我们将为您详细介绍Python numpy 模块-geterr() 实例源码的相关知识,并且为您解答关于python中numpy模块的疑问,此外,我们还会提供一些关于Jupyter 中的 Numpy 在打印时出错(Python 版本 3.8.8):TypeError: 'numpy.ndarray' object is not callable、numpy.random.random & numpy.ndarray.astype & numpy.arange、numpy.ravel()/numpy.flatten()/numpy.squeeze()、Numpy:数组创建 numpy.arrray() , numpy.arange()、np.linspace ()、数组基本属性的有用信息。
本文目录一览:- Python numpy 模块-geterr() 实例源码(python中numpy模块)
- Jupyter 中的 Numpy 在打印时出错(Python 版本 3.8.8):TypeError: 'numpy.ndarray' object is not callable
- numpy.random.random & numpy.ndarray.astype & numpy.arange
- numpy.ravel()/numpy.flatten()/numpy.squeeze()
- Numpy:数组创建 numpy.arrray() , numpy.arange()、np.linspace ()、数组基本属性
Python numpy 模块-geterr() 实例源码(python中numpy模块)
Python numpy 模块,geterr() 实例源码
我们从Python开源项目中,提取了以下36个代码示例,用于说明如何使用numpy.geterr()。
- def setUp(self):
- # Base data deFinition.
- x = np.array([1., 1., -2., pi/2.0, 4., 5., -10., 10., 2., 3.])
- y = np.array([5., 0., 3., -1., -4., 3.])
- a10 = 10.
- m1 = [1, 0, 1, 0]
- m2 = [0, 1]
- xm = masked_array(x, mask=m1)
- ym = masked_array(y, mask=m2)
- z = np.array([-.5, .5, .8])
- zm = masked_array(z, mask=[0, 0])
- xf = np.where(m1, 1e+20, x)
- xm.set_fill_value(1e+20)
- self.d = (x, y, a10, m1, m2, xm, ym, z, zm, xf)
- self.err_status = np.geterr()
- np.seterr(divide=''ignore'', invalid=''ignore'')
- def setUp(self):
- # Base data deFinition.
- x = np.array([1., invalid=''ignore'')
- def with_error_settings(**new_settings):
- """
- Todo.
- Arguments:
- **new_settings: Todo
- Returns:
- """
- @decorator.decorator
- def dec(f, *args, **kwargs):
- old_settings = np.geterr()
- np.seterr(**new_settings)
- ret = f(*args, **kwargs)
- np.seterr(**old_settings)
- return ret
- return dec
- def setUp(self):
- # Base data deFinition.
- x = np.array([1., invalid=''ignore'')
- def setUp(self):
- # Base data deFinition.
- x = np.array([1., invalid=''ignore'')
- def setUp(self):
- # Base data deFinition.
- x = np.array([1., invalid=''ignore'')
- def setUp(self):
- # Base data deFinition.
- x = np.array([1., invalid=''ignore'')
- def transform(value, left_scale, right_scale, scale=0):
- if left_scale is None or right_scale is None:
- raise Exception(''Left or Right scales cannot be None.'')
- if scale not in [0, 1]:
- raise Exception(''Scale must be 0 or 1.'')
- invalid_err = np.geterr().get(''invalid'')
- invalid_err = np.geterr().get(''invalid'')
- np.seterr(invalid=''ignore'')
- if scale == 0:
- range_ = np.absolute(right_scale - left_scale)
- translated_value = np.abs(value - left_scale)
- ret_val = (translated_value / range_)
- else:
- if left_scale <= 0.0:
- raise Exception()
- ls = np.log10(left_scale)
- rs = np.log10(right_scale)
- range_ = rs - ls
- translated_value = np.log10(value) - ls
- ret_val = (translated_value / range_)
- np.seterr(invalid=invalid_err)
- return ret_val
- def setUp(self):
- # Base data deFinition.
- x = np.array([1., invalid=''ignore'')
- def test_default(self):
- err = np.geterr()
- self.assertEqual(err, dict(
- divide=''warn'',
- invalid=''warn'',
- over=''warn'',
- under=''ignore'',
- ))
- def test_set(self):
- with np.errstate():
- err = np.seterr()
- old = np.seterr(divide=''print'')
- self.assertTrue(err == old)
- new = np.seterr()
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(over=''raise'')
- self.assertTrue(np.geterr()[''over''] == ''raise'')
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(**old)
- self.assertTrue(np.geterr() == old)
- def setUp(self):
- # Base data deFinition.
- self.d = (array([1.0, -1, pi / 2] * 2, 1] + [0] * 6),
- array([1.0, mask=[1, 0] + [0] * 6),)
- self.err_status = np.geterr()
- np.seterr(divide=''ignore'', invalid=''ignore'')
- def __enter__(self):
- self.err = numpy.geterr()
- numpy.seterr(**self.kw)
- def test_default(self):
- err = np.geterr()
- self.assertEqual(err,
- ))
- def test_set(self):
- with np.errstate():
- err = np.seterr()
- old = np.seterr(divide=''print'')
- self.assertTrue(err == old)
- new = np.seterr()
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(over=''raise'')
- self.assertTrue(np.geterr()[''over''] == ''raise'')
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(**old)
- self.assertTrue(np.geterr() == old)
- def setUp(self):
- # Base data deFinition.
- self.d = (array([1.0, invalid=''ignore'')
- def index(self):
- if self._instantiated_index is None:
- if self._index_class is None:
- raise RuntimeError("You should not instantiate Dataset.")
- self._instantiated_index = self._index_class(
- self, dataset_type=self.dataset_type)
- # Now we do things that we need an instantiated index for
- # ...first off,we create our field_info Now.
- oldsettings = np.geterr()
- np.seterr(all=''ignore'')
- self.create_field_info()
- np.seterr(**oldsettings)
- return self._instantiated_index
- def __enter__(self):
- self.err = numpy.geterr()
- numpy.seterr(**self.kw)
- def test_default(self):
- err = np.geterr()
- self.assertEqual(err,
- ))
- def test_set(self):
- with np.errstate():
- err = np.seterr()
- old = np.seterr(divide=''print'')
- self.assertTrue(err == old)
- new = np.seterr()
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(over=''raise'')
- self.assertTrue(np.geterr()[''over''] == ''raise'')
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(**old)
- self.assertTrue(np.geterr() == old)
- def setUp(self):
- # Base data deFinition.
- self.d = (array([1.0, invalid=''ignore'')
- def test_default(self):
- err = np.geterr()
- self.assertEqual(err,
- ))
- def test_set(self):
- with np.errstate():
- err = np.seterr()
- old = np.seterr(divide=''print'')
- self.assertTrue(err == old)
- new = np.seterr()
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(over=''raise'')
- self.assertTrue(np.geterr()[''over''] == ''raise'')
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(**old)
- self.assertTrue(np.geterr() == old)
- def setUp(self):
- # Base data deFinition.
- self.d = (array([1.0, invalid=''ignore'')
- def test_default(self):
- err = np.geterr()
- self.assertEqual(err,
- ))
- def test_set(self):
- with np.errstate():
- err = np.seterr()
- old = np.seterr(divide=''print'')
- self.assertTrue(err == old)
- new = np.seterr()
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(over=''raise'')
- self.assertTrue(np.geterr()[''over''] == ''raise'')
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(**old)
- self.assertTrue(np.geterr() == old)
- def setUp(self):
- # Base data deFinition.
- self.d = (array([1.0, invalid=''ignore'')
- def test_default(self):
- err = np.geterr()
- self.assertEqual(err,
- ))
- def test_set(self):
- with np.errstate():
- err = np.seterr()
- old = np.seterr(divide=''print'')
- self.assertTrue(err == old)
- new = np.seterr()
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(over=''raise'')
- self.assertTrue(np.geterr()[''over''] == ''raise'')
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(**old)
- self.assertTrue(np.geterr() == old)
- def _sample(self):
- super()._sample()
- self._fft_values[:] = numpy.abs(numpy.fft.rfft(self._window_function * self.buffer))
- if self._output == ''fft'':
- pass
- elif self._output == ''psd'':
- # Reminder for future-self:
- # Our Input signal is clamped between -1.0 and +1.0 yet if we convert the values above ^ into dB
- # we get values way beyond 0dB which makes no sense. Turns out we have to normalize the resulting
- # vector.
- # Thank you my hero: https://dsp.stackexchange.com/a/32080
- # Todo: This can be pre-calculated!
- self._fft_values[:] = numpy.power(self._fft_values * 2.0, 2) \\
- / numpy.power(self._window_function_sum * self._reference_value, 2)
- else:
- raise pulsevizException(''This should not happen.'')
- if self._scaling == ''lin'':
- pass
- elif self._scaling == ''log'':
- numpy.seterr(divide=''ignore'')
- self._fft_values[:] = 10.0 * numpy.log10(self._fft_values)
- numpy.seterr(all=''raise'') # Todo: Use result of numpy.geterr instead?
- else:
- raise pulsevizException(''This should not happen.'')
- if self._scaling == ''log'':
- self._fft_values[:] += self._fft_weights
- else:
- self._fft_values[:] *= numpy.power(10, self._fft_weights / 20) # Todo: Test this.
- def inverse_transform(value, 1]:
- raise Exception(''Scale must be 0 or 1.'')
- invalid_err = np.geterr().get(''invalid'')
- np.seterr(invalid=''ignore'')
- if scale == 0:
- range_ = np.absolute(right_scale - left_scale)
- translated_value = value * range_
- if (left_scale > right_scale):
- ret_val = left_scale - translated_value
- else:
- ret_val = left_scale + translated_value
- else:
- ls = np.log10(left_scale)
- rs = np.log10(right_scale)
- range_ = rs - ls
- translated_value = value * range_
- translated_value = np.round(translated_value, 3)
- translated_value = translated_value + ls
- ret_val = np.power(10, translated_value)
- np.seterr(invalid=invalid_err)
- return ret_val
- ###############################################################################
- ###############################################################################
- def test_default(self):
- err = np.geterr()
- self.assertEqual(err,
- ))
- def test_set(self):
- with np.errstate():
- err = np.seterr()
- old = np.seterr(divide=''print'')
- self.assertTrue(err == old)
- new = np.seterr()
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(over=''raise'')
- self.assertTrue(np.geterr()[''over''] == ''raise'')
- self.assertTrue(new[''divide''] == ''print'')
- np.seterr(**old)
- self.assertTrue(np.geterr() == old)
- def setUp(self):
- # Base data deFinition.
- self.d = (array([1.0, invalid=''ignore'')
- def geterr():
- """
- Get the current way of handling floating-point errors.
- Returns
- -------
- res : dict
- A dictionary with keys "divide","over","under",and "invalid",
- whose values are from the strings "ignore","print","log","warn",
- "raise",and "call". The keys represent possible floating-point
- exceptions,and the values define how these exceptions are handled.
- See Also
- --------
- geterrcall,seterr,seterrcall
- Notes
- -----
- For complete documentation of the types of floating-point exceptions and
- treatment options,see `seterr`.
- Examples
- --------
- >>> np.geterr()
- {''over'': ''warn'',''divide'': ''warn'',''invalid'': ''warn'',
- ''under'': ''ignore''}
- >>> np.arange(3.) / np.arange(3.)
- array([ NaN,1.,1.])
- >>> oldsettings = np.seterr(all=''warn'',over=''raise'')
- >>> np.geterr()
- {''over'': ''raise'',''under'': ''warn''}
- >>> np.arange(3.) / np.arange(3.)
- __main__:1: RuntimeWarning: invalid value encountered in divide
- array([ NaN,1.])
- """
- maskvalue = umath.geterrobj()[1]
- mask = 7
- res = {}
- val = (maskvalue >> SHIFT_DIVIDEBYZERO) & mask
- res[''divide''] = _errdict_rev[val]
- val = (maskvalue >> SHIFT_OVERFLOW) & mask
- res[''over''] = _errdict_rev[val]
- val = (maskvalue >> SHIFT_UNDERFLOW) & mask
- res[''under''] = _errdict_rev[val]
- val = (maskvalue >> SHIFT_INVALID) & mask
- res[''invalid''] = _errdict_rev[val]
- return res
- def geterrcall():
- """
- Return the current callback function used on floating-point errors.
- When the error handling for a floating-point error (one of "divide",
- "over",or "invalid") is set to ''call'' or ''log'',the function
- that is called or the log instance that is written to is returned by
- `geterrcall`. This function or log instance has been set with
- `seterrcall`.
- Returns
- -------
- errobj : callable,log instance or None
- The current error handler. If no handler was set through `seterrcall`,
- ``None`` is returned.
- See Also
- --------
- seterrcall,geterr
- Notes
- -----
- For complete documentation of the types of floating-point exceptions and
- treatment options,see `seterr`.
- Examples
- --------
- >>> np.geterrcall() # we did not yet set a handler,returns None
- >>> oldsettings = np.seterr(all=''call'')
- >>> def err_handler(type,flag):
- ... print("Floating point error (%s),with flag %s" % (type,flag))
- >>> oldhandler = np.seterrcall(err_handler)
- >>> np.array([1,2,3]) / 0.0
- Floating point error (divide by zero),with flag 1
- array([ Inf,Inf,Inf])
- >>> cur_handler = np.geterrcall()
- >>> cur_handler is err_handler
- True
- """
- return umath.geterrobj()[2]
Jupyter 中的 Numpy 在打印时出错(Python 版本 3.8.8):TypeError: 'numpy.ndarray' object is not callable
如何解决Jupyter 中的 Numpy 在打印时出错(Python 版本 3.8.8):TypeError: ''numpy.ndarray'' object is not callable?
晚安, 尝试打印以下内容时,我在 jupyter 中遇到了 numpy 问题,并且得到了一个 错误: 需要注意的是python版本是3.8.8。 我先用 spyder 测试它,它运行正确,它给了我预期的结果
使用 Spyder:
import numpy as np
for i in range (5):
n = np.random.rand ()
print (n)
Results
0.6604903457995978
0.8236300859753154
0.16067650689842816
0.6967868357083673
0.4231597934445466
现在有了 jupyter
import numpy as np
for i in range (5):
n = np.random.rand ()
print (n)
-------------------------------------------------- ------
TypeError Traceback (most recent call last)
<ipython-input-78-0c6a801b3ea9> in <module>
2 for i in range (5):
3 n = np.random.rand ()
----> 4 print (n)
TypeError: ''numpy.ndarray'' object is not callable
感谢您对我如何在 Jupyter 中解决此问题的帮助。
非常感谢您抽出宝贵时间。
阿特,约翰”
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
numpy.random.random & numpy.ndarray.astype & numpy.arange
今天看到这样一句代码:
xb = np.random.random((nb, d)).astype(''float32'') #创建一个二维随机数矩阵(nb行d列)
xb[:, 0] += np.arange(nb) / 1000. #将矩阵第一列的每个数加上一个值
要理解这两句代码需要理解三个函数
1、生成随机数
numpy.random.random(size=None)
size为None时,返回float。
size不为None时,返回numpy.ndarray。例如numpy.random.random((1,2)),返回1行2列的numpy数组
2、对numpy数组中每一个元素进行类型转换
numpy.ndarray.astype(dtype)
返回numpy.ndarray。例如 numpy.array([1, 2, 2.5]).astype(int),返回numpy数组 [1, 2, 2]
3、获取等差数列
numpy.arange([start,]stop,[step,]dtype=None)
功能类似python中自带的range()和numpy中的numpy.linspace
返回numpy数组。例如numpy.arange(3),返回numpy数组[0, 1, 2]
numpy.ravel()/numpy.flatten()/numpy.squeeze()
numpy.ravel(a, order=''C'')
Return a flattened array
numpy.chararray.flatten(order=''C'')
Return a copy of the array collapsed into one dimension
numpy.squeeze(a, axis=None)
Remove single-dimensional entries from the shape of an array.
相同点: 将多维数组 降为 一维数组
不同点:
ravel() 返回的是视图(view),意味着改变元素的值会影响原始数组元素的值;
flatten() 返回的是拷贝,意味着改变元素的值不会影响原始数组;
squeeze()返回的是视图(view),仅仅是将shape中dimension为1的维度去掉;
ravel()示例:
1 import matplotlib.pyplot as plt
2 import numpy as np
3
4 def log_type(name,arr):
5 print("数组{}的大小:{}".format(name,arr.size))
6 print("数组{}的维度:{}".format(name,arr.shape))
7 print("数组{}的维度:{}".format(name,arr.ndim))
8 print("数组{}元素的数据类型:{}".format(name,arr.dtype))
9 #print("数组:{}".format(arr.data))
10
11 a = np.floor(10*np.random.random((3,4)))
12 print(a)
13 log_type(''a'',a)
14
15 a1 = a.ravel()
16 print("a1:{}".format(a1))
17 log_type(''a1'',a1)
18 a1[2] = 100
19
20 print(a)
21 log_type(''a'',a)
flatten()示例
1 import matplotlib.pyplot as plt
2 import numpy as np
3
4 def log_type(name,arr):
5 print("数组{}的大小:{}".format(name,arr.size))
6 print("数组{}的维度:{}".format(name,arr.shape))
7 print("数组{}的维度:{}".format(name,arr.ndim))
8 print("数组{}元素的数据类型:{}".format(name,arr.dtype))
9 #print("数组:{}".format(arr.data))
10
11 a = np.floor(10*np.random.random((3,4)))
12 print(a)
13 log_type(''a'',a)
14
15 a1 = a.flatten()
16 print("修改前a1:{}".format(a1))
17 log_type(''a1'',a1)
18 a1[2] = 100
19 print("修改后a1:{}".format(a1))
20
21 print("a:{}".format(a))
22 log_type(''a'',a)
squeeze()示例:
1. 没有single-dimensional entries的情况
1 import matplotlib.pyplot as plt
2 import numpy as np
3
4 def log_type(name,arr):
5 print("数组{}的大小:{}".format(name,arr.size))
6 print("数组{}的维度:{}".format(name,arr.shape))
7 print("数组{}的维度:{}".format(name,arr.ndim))
8 print("数组{}元素的数据类型:{}".format(name,arr.dtype))
9 #print("数组:{}".format(arr.data))
10
11 a = np.floor(10*np.random.random((3,4)))
12 print(a)
13 log_type(''a'',a)
14
15 a1 = a.squeeze()
16 print("修改前a1:{}".format(a1))
17 log_type(''a1'',a1)
18 a1[2] = 100
19 print("修改后a1:{}".format(a1))
20
21 print("a:{}".format(a))
22 log_type(''a'',a)
从结果中可以看到,当没有single-dimensional entries时,squeeze()返回额数组对象是一个view,而不是copy。
2. 有single-dimentional entries 的情况
1 import matplotlib.pyplot as plt
2 import numpy as np
3
4 def log_type(name,arr):
5 print("数组{}的大小:{}".format(name,arr.size))
6 print("数组{}的维度:{}".format(name,arr.shape))
7 print("数组{}的维度:{}".format(name,arr.ndim))
8 print("数组{}元素的数据类型:{}".format(name,arr.dtype))
9 #print("数组:{}".format(arr.data))
10
11 a = np.floor(10*np.random.random((1,3,4)))
12 print(a)
13 log_type(''a'',a)
14
15 a1 = a.squeeze()
16 print("修改前a1:{}".format(a1))
17 log_type(''a1'',a1)
18 a1[2] = 100
19 print("修改后a1:{}".format(a1))
20
21 print("a:{}".format(a))
22 log_type(''a'',a)
Numpy:数组创建 numpy.arrray() , numpy.arange()、np.linspace ()、数组基本属性
一、Numpy数组创建
part 1:np.linspace(起始值,终止值,元素总个数
import numpy as np
''''''
numpy中的ndarray数组
''''''
ary = np.array([1, 2, 3, 4, 5])
print(ary)
ary = ary * 10
print(ary)
''''''
ndarray对象的创建
''''''
# 创建二维数组
# np.array([[],[],...])
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(a)
# np.arange(起始值, 结束值, 步长(默认1))
b = np.arange(1, 10, 1)
print(b)
print("-------------np.zeros(数组元素个数, dtype=''数组元素类型'')-----")
# 创建一维数组:
c = np.zeros(10)
print(c, ''; c.dtype:'', c.dtype)
# 创建二维数组:
print(np.zeros ((3,4)))
print("----------np.ones(数组元素个数, dtype=''数组元素类型'')--------")
# 创建一维数组:
d = np.ones(10, dtype=''int64'')
print(d, ''; d.dtype:'', d.dtype)
# 创建三维数组:
print(np.ones( (2,3,4), dtype=np.int32 ))
# 打印维度
print(np.ones( (2,3,4), dtype=np.int32 ).ndim) # 返回:3(维)
结果图:
part 2 :np.linspace ( 起始值,终止值,元素总个数)
import numpy as np
a = np.arange( 10, 30, 5 )
b = np.arange( 0, 2, 0.3 )
c = np.arange(12).reshape(4,3)
d = np.random.random((2,3)) # 取-1到1之间的随机数,要求设置为诶2行3列的结构
print(a)
print(b)
print(c)
print(d)
print("-----------------")
from numpy import pi
print(np.linspace( 0, 2*pi, 100 ))
print("-------------np.linspace(起始值,终止值,元素总个数)------------------")
print(np.sin(np.linspace( 0, 2*pi, 100 )))
结果图:
二、Numpy的ndarray对象属性:
数组的结构:array.shape
数组的维度:array.ndim
元素的类型:array.dtype
数组元素的个数:array.size
数组的索引(下标):array[0]
''''''
数组的基本属性
''''''
import numpy as np
print("--------------------案例1:------------------------------")
a = np.arange(15).reshape(3, 5)
print(a)
print(a.shape) # 打印数组结构
print(len(a)) # 打印有多少行
print(a.ndim) # 打印维度
print(a.dtype) # 打印a数组内的元素的数据类型
# print(a.dtype.name)
print(a.size) # 打印数组的总元素个数
print("-------------------案例2:---------------------------")
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
# 测试数组的基本属性
print(''a.shape:'', a.shape)
print(''a.size:'', a.size)
print(''len(a):'', len(a))
# a.shape = (6, ) # 此格式可将原数组结构变成1行6列的数据结构
# print(a, ''a.shape:'', a.shape)
# 数组元素的索引
ary = np.arange(1, 28)
ary.shape = (3, 3, 3) # 创建三维数组
print("ary.shape:",ary.shape,"\n",ary )
print("-----------------")
print(''ary[0]:'', ary[0])
print(''ary[0][0]:'', ary[0][0])
print(''ary[0][0][0]:'', ary[0][0][0])
print(''ary[0,0,0]:'', ary[0, 0, 0])
print("-----------------")
# 遍历三维数组:遍历出数组里的每个元素
for i in range(ary.shape[0]):
for j in range(ary.shape[1]):
for k in range(ary.shape[2]):
print(ary[i, j, k], end='' '')
结果图:
我们今天的关于Python numpy 模块-geterr() 实例源码和python中numpy模块的分享就到这里,谢谢您的阅读,如果想了解更多关于Jupyter 中的 Numpy 在打印时出错(Python 版本 3.8.8):TypeError: 'numpy.ndarray' object is not callable、numpy.random.random & numpy.ndarray.astype & numpy.arange、numpy.ravel()/numpy.flatten()/numpy.squeeze()、Numpy:数组创建 numpy.arrray() , numpy.arange()、np.linspace ()、数组基本属性的相关信息,可以在本站进行搜索。
本文标签: