numpy与list的区别 定义多维数组,取数组元素 numpy数值类型 数据类型对象 dtype('int32') e.dtype.type 所占字节数 e.dtype.itemsize 字符码 e.dtype.char 数组切片

Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import numpy as np
>>> a=list(range(10,15))
>>> a
[10, 11, 12, 13, 14]
>>> b=np.arange(5)
>>> b
array([0, 1, 2, 3, 4])
>>> type(a)
<class 'list'>
>>> type(b)
<class 'numpy.ndarray'>
>>> a[1]
11
>>> b[1]
1
>>> a*2
[10, 11, 12, 13, 14, 10, 11, 12, 13, 14]
>>> b*2
array([0, 2, 4, 6, 8])
>>> a**2
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    a**2
TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int'
>>> b**2 //b的二次方
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    b**2 //b的二次方
NameError: name 'b的二次方' is not defined
>>> #b的二次方
>>> b**2
array([ 0,  1,  4,  9, 16], dtype=int32)
>>> b**2
array([ 0,  1,  4,  9, 16], dtype=int32)
>>> b.dtype
dtype('int32')
>>> #b元组都是整型
>>> b.shape
(5,)
>>> #多维数组
>>> c=np.array([a,b])
>>> c
array([[10, 11, 12, 13, 14],
       [ 0,  1,  2,  3,  4]])
>>> d=[a,b]
>>> d
[[10, 11, 12, 13, 14], array([0, 1, 2, 3, 4])]
>>> c.shape
(2, 5)
>>> c.size
10
>>> e=np.array([c,c*2])
>>> e
array([[[10, 11, 12, 13, 14],
        [ 0,  1,  2,  3,  4]],

       [[20, 22, 24, 26, 28],
        [ 0,  2,  4,  6,  8]]])
>>> e.shape
(2, 2, 5)
>>> e[1]
array([[20, 22, 24, 26, 28],
       [ 0,  2,  4,  6,  8]])
>>> e[1,0]
array([20, 22, 24, 26, 28])
>>> e[1,0,3]
26
>>> #numpy数值类型
>>> type(d)
<class 'list'>
>>> type(d[1])
<class 'numpy.ndarray'>
>>> e.dtype
dtype('int32')
>>> e[1].dtype
dtype('int32')
>>> b.np.arange(5,dtype=np.int64)
Traceback (most recent call last):
  File "<pyshell#37>", line 1, in <module>
    b.np.arange(5,dtype=np.int64)
AttributeError: 'numpy.ndarray' object has no attribute 'np'
>>> b=np.arange(5,dtype=np.float16)
>>> b
array([ 0.,  1.,  2.,  3.,  4.], dtype=float16)
>>> b=np.arange(5,dtype=np.int64)
>>> b
array([0, 1, 2, 3, 4], dtype=int64)
>>> #所占字节数
>>> e.dtype.itemsize
4
>>> #字符码
>>> e.dtype.char
'l'
>>> #数组切片
>>> b[2:5]
array([2, 3, 4], dtype=int64)
>>> e[0,0,2:5]
array([12, 13, 14])
>>> e[0,0,0:5:2]
array([10, 12, 14])
>>> #数组反转
>>> e[::-1]
array([[[20, 22, 24, 26, 28],
        [ 0,  2,  4,  6,  8]],

       [[10, 11, 12, 13, 14],
        [ 0,  1,  2,  3,  4]]])
>>> e[::1]
array([[[10, 11, 12, 13, 14],
        [ 0,  1,  2,  3,  4]],

       [[20, 22, 24, 26, 28],
        [ 0,  2,  4,  6,  8]]])
>>> 

猜你喜欢

转载自www.cnblogs.com/zwlh/p/9770560.html