GVKun编程网logo

Python numpy 模块-geterr() 实例源码(python中numpy模块)

4

在本文中,我们将为您详细介绍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模块)

Python numpy 模块-geterr() 实例源码(python中numpy模块)

Python numpy 模块,geterr() 实例源码

我们从Python开源项目中,提取了以下36个代码示例,用于说明如何使用numpy.geterr()

项目:deliver    作者:orchestor    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. x = np.array([1., 1., -2., pi/2.0, 4., 5., -10., 10., 2., 3.])
  4. y = np.array([5., 0., 3., -1., -4., 3.])
  5. a10 = 10.
  6. m1 = [1, 0, 1, 0]
  7. m2 = [0, 1]
  8. xm = masked_array(x, mask=m1)
  9. ym = masked_array(y, mask=m2)
  10. z = np.array([-.5, .5, .8])
  11. zm = masked_array(z, mask=[0, 0])
  12. xf = np.where(m1, 1e+20, x)
  13. xm.set_fill_value(1e+20)
  14. self.d = (x, y, a10, m1, m2, xm, ym, z, zm, xf)
  15. self.err_status = np.geterr()
  16. np.seterr(divide=''ignore'', invalid=''ignore'')
项目:radar    作者:amoose136    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. x = np.array([1., invalid=''ignore'')
项目:ngraph    作者:NervanaSystems    | 项目源码 | 文件源码
  1. def with_error_settings(**new_settings):
  2. """
  3. Todo.
  4.  
  5. Arguments:
  6. **new_settings: Todo
  7.  
  8. Returns:
  9. """
  10. @decorator.decorator
  11. def dec(f, *args, **kwargs):
  12. old_settings = np.geterr()
  13.  
  14. np.seterr(**new_settings)
  15. ret = f(*args, **kwargs)
  16.  
  17. np.seterr(**old_settings)
  18.  
  19. return ret
  20.  
  21. return dec
项目:krpcScripts    作者:jwvanderbeck    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. x = np.array([1., invalid=''ignore'')
项目:PyDataLondon29-EmbarrassinglyParallelDAWithAWSLambda    作者:SignalMedia    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. x = np.array([1., invalid=''ignore'')
项目:aws-lambda-numpy    作者:vitolimandibhrata    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. x = np.array([1., invalid=''ignore'')
项目:lambda-numba    作者:rlhotovy    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. x = np.array([1., invalid=''ignore'')
项目:gripy    作者:giruenf    | 项目源码 | 文件源码
  1. def transform(value, left_scale, right_scale, scale=0):
  2. if left_scale is None or right_scale is None:
  3. raise Exception(''Left or Right scales cannot be None.'')
  4. if scale not in [0, 1]:
  5. raise Exception(''Scale must be 0 or 1.'')
  6. invalid_err = np.geterr().get(''invalid'')
  7. invalid_err = np.geterr().get(''invalid'')
  8. np.seterr(invalid=''ignore'')
  9. if scale == 0:
  10. range_ = np.absolute(right_scale - left_scale)
  11. translated_value = np.abs(value - left_scale)
  12. ret_val = (translated_value / range_)
  13. else:
  14. if left_scale <= 0.0:
  15. raise Exception()
  16. ls = np.log10(left_scale)
  17. rs = np.log10(right_scale)
  18. range_ = rs - ls
  19. translated_value = np.log10(value) - ls
  20. ret_val = (translated_value / range_)
  21. np.seterr(invalid=invalid_err)
  22. return ret_val
项目:Alfred    作者:jkachhadia    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. x = np.array([1., invalid=''ignore'')
项目:radar    作者:amoose136    | 项目源码 | 文件源码
  1. def test_default(self):
  2. err = np.geterr()
  3. self.assertEqual(err, dict(
  4. divide=''warn'',
  5. invalid=''warn'',
  6. over=''warn'',
  7. under=''ignore'',
  8. ))
项目:radar    作者:amoose136    | 项目源码 | 文件源码
  1. def test_set(self):
  2. with np.errstate():
  3. err = np.seterr()
  4. old = np.seterr(divide=''print'')
  5. self.assertTrue(err == old)
  6. new = np.seterr()
  7. self.assertTrue(new[''divide''] == ''print'')
  8. np.seterr(over=''raise'')
  9. self.assertTrue(np.geterr()[''over''] == ''raise'')
  10. self.assertTrue(new[''divide''] == ''print'')
  11. np.seterr(**old)
  12. self.assertTrue(np.geterr() == old)
项目:radar    作者:amoose136    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. self.d = (array([1.0, -1, pi / 2] * 2, 1] + [0] * 6),
  4. array([1.0, mask=[1, 0] + [0] * 6),)
  5. self.err_status = np.geterr()
  6. np.seterr(divide=''ignore'', invalid=''ignore'')
项目:cupy    作者:cupy    | 项目源码 | 文件源码
  1. def __enter__(self):
  2. self.err = numpy.geterr()
  3. numpy.seterr(**self.kw)
项目:krpcScripts    作者:jwvanderbeck    | 项目源码 | 文件源码
  1. def test_default(self):
  2. err = np.geterr()
  3. self.assertEqual(err,
  4. ))
项目:krpcScripts    作者:jwvanderbeck    | 项目源码 | 文件源码
  1. def test_set(self):
  2. with np.errstate():
  3. err = np.seterr()
  4. old = np.seterr(divide=''print'')
  5. self.assertTrue(err == old)
  6. new = np.seterr()
  7. self.assertTrue(new[''divide''] == ''print'')
  8. np.seterr(over=''raise'')
  9. self.assertTrue(np.geterr()[''over''] == ''raise'')
  10. self.assertTrue(new[''divide''] == ''print'')
  11. np.seterr(**old)
  12. self.assertTrue(np.geterr() == old)
项目:krpcScripts    作者:jwvanderbeck    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. self.d = (array([1.0, invalid=''ignore'')
项目:yt    作者:yt-project    | 项目源码 | 文件源码
  1. def index(self):
  2. if self._instantiated_index is None:
  3. if self._index_class is None:
  4. raise RuntimeError("You should not instantiate Dataset.")
  5. self._instantiated_index = self._index_class(
  6. self, dataset_type=self.dataset_type)
  7. # Now we do things that we need an instantiated index for
  8. # ...first off,we create our field_info Now.
  9. oldsettings = np.geterr()
  10. np.seterr(all=''ignore'')
  11. self.create_field_info()
  12. np.seterr(**oldsettings)
  13. return self._instantiated_index
项目:chainer-deconv    作者:germanRos    | 项目源码 | 文件源码
  1. def __enter__(self):
  2. self.err = numpy.geterr()
  3. numpy.seterr(**self.kw)
项目:PyDataLondon29-EmbarrassinglyParallelDAWithAWSLambda    作者:SignalMedia    | 项目源码 | 文件源码
  1. def test_default(self):
  2. err = np.geterr()
  3. self.assertEqual(err,
  4. ))
项目:PyDataLondon29-EmbarrassinglyParallelDAWithAWSLambda    作者:SignalMedia    | 项目源码 | 文件源码
  1. def test_set(self):
  2. with np.errstate():
  3. err = np.seterr()
  4. old = np.seterr(divide=''print'')
  5. self.assertTrue(err == old)
  6. new = np.seterr()
  7. self.assertTrue(new[''divide''] == ''print'')
  8. np.seterr(over=''raise'')
  9. self.assertTrue(np.geterr()[''over''] == ''raise'')
  10. self.assertTrue(new[''divide''] == ''print'')
  11. np.seterr(**old)
  12. self.assertTrue(np.geterr() == old)
项目:PyDataLondon29-EmbarrassinglyParallelDAWithAWSLambda    作者:SignalMedia    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. self.d = (array([1.0, invalid=''ignore'')
项目:aws-lambda-numpy    作者:vitolimandibhrata    | 项目源码 | 文件源码
  1. def test_default(self):
  2. err = np.geterr()
  3. self.assertEqual(err,
  4. ))
项目:aws-lambda-numpy    作者:vitolimandibhrata    | 项目源码 | 文件源码
  1. def test_set(self):
  2. with np.errstate():
  3. err = np.seterr()
  4. old = np.seterr(divide=''print'')
  5. self.assertTrue(err == old)
  6. new = np.seterr()
  7. self.assertTrue(new[''divide''] == ''print'')
  8. np.seterr(over=''raise'')
  9. self.assertTrue(np.geterr()[''over''] == ''raise'')
  10. self.assertTrue(new[''divide''] == ''print'')
  11. np.seterr(**old)
  12. self.assertTrue(np.geterr() == old)
项目:aws-lambda-numpy    作者:vitolimandibhrata    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. self.d = (array([1.0, invalid=''ignore'')
项目:lambda-numba    作者:rlhotovy    | 项目源码 | 文件源码
  1. def test_default(self):
  2. err = np.geterr()
  3. self.assertEqual(err,
  4. ))
项目:lambda-numba    作者:rlhotovy    | 项目源码 | 文件源码
  1. def test_set(self):
  2. with np.errstate():
  3. err = np.seterr()
  4. old = np.seterr(divide=''print'')
  5. self.assertTrue(err == old)
  6. new = np.seterr()
  7. self.assertTrue(new[''divide''] == ''print'')
  8. np.seterr(over=''raise'')
  9. self.assertTrue(np.geterr()[''over''] == ''raise'')
  10. self.assertTrue(new[''divide''] == ''print'')
  11. np.seterr(**old)
  12. self.assertTrue(np.geterr() == old)
项目:lambda-numba    作者:rlhotovy    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. self.d = (array([1.0, invalid=''ignore'')
项目:deliver    作者:orchestor    | 项目源码 | 文件源码
  1. def test_default(self):
  2. err = np.geterr()
  3. self.assertEqual(err,
  4. ))
项目:deliver    作者:orchestor    | 项目源码 | 文件源码
  1. def test_set(self):
  2. with np.errstate():
  3. err = np.seterr()
  4. old = np.seterr(divide=''print'')
  5. self.assertTrue(err == old)
  6. new = np.seterr()
  7. self.assertTrue(new[''divide''] == ''print'')
  8. np.seterr(over=''raise'')
  9. self.assertTrue(np.geterr()[''over''] == ''raise'')
  10. self.assertTrue(new[''divide''] == ''print'')
  11. np.seterr(**old)
  12. self.assertTrue(np.geterr() == old)
项目:pulseviz    作者:pckbls    | 项目源码 | 文件源码
  1. def _sample(self):
  2. super()._sample()
  3.  
  4. self._fft_values[:] = numpy.abs(numpy.fft.rfft(self._window_function * self.buffer))
  5.  
  6. if self._output == ''fft'':
  7. pass
  8. elif self._output == ''psd'':
  9. # Reminder for future-self:
  10. # Our Input signal is clamped between -1.0 and +1.0 yet if we convert the values above ^ into dB
  11. # we get values way beyond 0dB which makes no sense. Turns out we have to normalize the resulting
  12. # vector.
  13. # Thank you my hero: https://dsp.stackexchange.com/a/32080
  14. # Todo: This can be pre-calculated!
  15. self._fft_values[:] = numpy.power(self._fft_values * 2.0, 2) \\
  16. / numpy.power(self._window_function_sum * self._reference_value, 2)
  17. else:
  18. raise pulsevizException(''This should not happen.'')
  19.  
  20. if self._scaling == ''lin'':
  21. pass
  22. elif self._scaling == ''log'':
  23. numpy.seterr(divide=''ignore'')
  24. self._fft_values[:] = 10.0 * numpy.log10(self._fft_values)
  25. numpy.seterr(all=''raise'') # Todo: Use result of numpy.geterr instead?
  26. else:
  27. raise pulsevizException(''This should not happen.'')
  28.  
  29. if self._scaling == ''log'':
  30. self._fft_values[:] += self._fft_weights
  31. else:
  32. self._fft_values[:] *= numpy.power(10, self._fft_weights / 20) # Todo: Test this.
项目:gripy    作者:giruenf    | 项目源码 | 文件源码
  1. def inverse_transform(value, 1]:
  2. raise Exception(''Scale must be 0 or 1.'')
  3. invalid_err = np.geterr().get(''invalid'')
  4. np.seterr(invalid=''ignore'')
  5. if scale == 0:
  6. range_ = np.absolute(right_scale - left_scale)
  7. translated_value = value * range_
  8. if (left_scale > right_scale):
  9. ret_val = left_scale - translated_value
  10. else:
  11. ret_val = left_scale + translated_value
  12. else:
  13. ls = np.log10(left_scale)
  14. rs = np.log10(right_scale)
  15. range_ = rs - ls
  16. translated_value = value * range_
  17. translated_value = np.round(translated_value, 3)
  18. translated_value = translated_value + ls
  19. ret_val = np.power(10, translated_value)
  20. np.seterr(invalid=invalid_err)
  21. return ret_val
  22.  
  23.  
  24.  
  25. ###############################################################################
  26. ###############################################################################
项目:Alfred    作者:jkachhadia    | 项目源码 | 文件源码
  1. def test_default(self):
  2. err = np.geterr()
  3. self.assertEqual(err,
  4. ))
项目:Alfred    作者:jkachhadia    | 项目源码 | 文件源码
  1. def test_set(self):
  2. with np.errstate():
  3. err = np.seterr()
  4. old = np.seterr(divide=''print'')
  5. self.assertTrue(err == old)
  6. new = np.seterr()
  7. self.assertTrue(new[''divide''] == ''print'')
  8. np.seterr(over=''raise'')
  9. self.assertTrue(np.geterr()[''over''] == ''raise'')
  10. self.assertTrue(new[''divide''] == ''print'')
  11. np.seterr(**old)
  12. self.assertTrue(np.geterr() == old)
项目:Alfred    作者:jkachhadia    | 项目源码 | 文件源码
  1. def setUp(self):
  2. # Base data deFinition.
  3. self.d = (array([1.0, invalid=''ignore'')
项目:deliver    作者:orchestor    | 项目源码 | 文件源码
  1. def geterr():
  2. """
  3. Get the current way of handling floating-point errors.
  4.  
  5. Returns
  6. -------
  7. res : dict
  8. A dictionary with keys "divide","over","under",and "invalid",
  9. whose values are from the strings "ignore","print","log","warn",
  10. "raise",and "call". The keys represent possible floating-point
  11. exceptions,and the values define how these exceptions are handled.
  12.  
  13. See Also
  14. --------
  15. geterrcall,seterr,seterrcall
  16.  
  17. Notes
  18. -----
  19. For complete documentation of the types of floating-point exceptions and
  20. treatment options,see `seterr`.
  21.  
  22. Examples
  23. --------
  24. >>> np.geterr()
  25. {''over'': ''warn'',''divide'': ''warn'',''invalid'': ''warn'',
  26. ''under'': ''ignore''}
  27. >>> np.arange(3.) / np.arange(3.)
  28. array([ NaN,1.,1.])
  29.  
  30. >>> oldsettings = np.seterr(all=''warn'',over=''raise'')
  31. >>> np.geterr()
  32. {''over'': ''raise'',''under'': ''warn''}
  33. >>> np.arange(3.) / np.arange(3.)
  34. __main__:1: RuntimeWarning: invalid value encountered in divide
  35. array([ NaN,1.])
  36.  
  37. """
  38. maskvalue = umath.geterrobj()[1]
  39. mask = 7
  40. res = {}
  41. val = (maskvalue >> SHIFT_DIVIDEBYZERO) & mask
  42. res[''divide''] = _errdict_rev[val]
  43. val = (maskvalue >> SHIFT_OVERFLOW) & mask
  44. res[''over''] = _errdict_rev[val]
  45. val = (maskvalue >> SHIFT_UNDERFLOW) & mask
  46. res[''under''] = _errdict_rev[val]
  47. val = (maskvalue >> SHIFT_INVALID) & mask
  48. res[''invalid''] = _errdict_rev[val]
  49. return res
项目:deliver    作者:orchestor    | 项目源码 | 文件源码
  1. def geterrcall():
  2. """
  3. Return the current callback function used on floating-point errors.
  4.  
  5. When the error handling for a floating-point error (one of "divide",
  6. "over",or "invalid") is set to ''call'' or ''log'',the function
  7. that is called or the log instance that is written to is returned by
  8. `geterrcall`. This function or log instance has been set with
  9. `seterrcall`.
  10.  
  11. Returns
  12. -------
  13. errobj : callable,log instance or None
  14. The current error handler. If no handler was set through `seterrcall`,
  15. ``None`` is returned.
  16.  
  17. See Also
  18. --------
  19. seterrcall,geterr
  20.  
  21. Notes
  22. -----
  23. For complete documentation of the types of floating-point exceptions and
  24. treatment options,see `seterr`.
  25.  
  26. Examples
  27. --------
  28. >>> np.geterrcall() # we did not yet set a handler,returns None
  29.  
  30. >>> oldsettings = np.seterr(all=''call'')
  31. >>> def err_handler(type,flag):
  32. ... print("Floating point error (%s),with flag %s" % (type,flag))
  33. >>> oldhandler = np.seterrcall(err_handler)
  34. >>> np.array([1,2,3]) / 0.0
  35. Floating point error (divide by zero),with flag 1
  36. array([ Inf,Inf,Inf])
  37.  
  38. >>> cur_handler = np.geterrcall()
  39. >>> cur_handler is err_handler
  40. True
  41.  
  42. """
  43. 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):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

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()/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:数组创建 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 ()、数组基本属性的相关信息,可以在本站进行搜索。

本文标签: