numpy note1

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵。

1、引入numpy模块

>>> import numpy as np

2、Ndarray对象(NumPy库的基础)

 >>> l = [1, 2, 3]
>>> a = np.array(l) #数字 -列表转化为矩阵
# 查看a对象的数据类型
>>> type(a)
numpy.ndarray
# 数据类型(查看a里边的数据类型)
>>> a.dtype 
dtype('int32')
# 轴数量 ---维度,几维数组
>>> a.ndim 
1
# 数组长度 ---元素个数
>>> a.size 
3
# 数组的型 ---行数和列数
>>> a.shape 
 (3,)

3、定义二维数组

>>> b = np.array([[1.3, 2.4], [0.3, 4.1]])
>>> b.dtype
dtype('float64')
>>> b.ndim
2
>>> b.size
4
>>> b.shape
(2, 2)

4、创建数组

>>> c = np.array([[1, 2, 3], [4, 5, 6]])
array([[1, 2, 3],
       [4, 5, 6]])
>>> d = np.array(((1, 2, 3), (4, 5, 6)))
array([[1, 2, 3],
       [4, 5, 6]])
>>> e = np.array([(1, 2, 3), [4, 5, 6], (7, 8, 9)])
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

5、数据类型判断

>>> g = np.array([['a', 'b'], ['c', 'd']])
>>> g
array([['a', 'b'],
       ['c', 'd']],
      dtype='<U1')
>>> g.dtype
dtype('<U1')
>>> g.dtype.name
'str32'
>>> f = np.array([[1, 2, 3], [4, 5, 6]], dtype=complex)
>>> f
array([[ 1.+0.j,  2.+0.j,  3.+0.j],
       [ 4.+0.j,  5.+0.j,  6.+0.j]])
>>> f.astype('float') #astype转换类型
array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.]])

6、创建自定义数组

>>> np.zeros((3, 3)) # 建立一个零矩阵
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
>>> np.ones((3, 3)) # 建立一个单位阵
array([[ 1.,  1.,  1.],
       [ 1.,  1.,  1.],
       [ 1.,  1.,  1.]])
>>> np.eye(3) #创建单位阵I(对角线上为1,其余位置为0)
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> np.empty(3) #只分配内存空间,但不填充任何值(填充值比较随机),创建数据接近0
array([ 1.,  1.,  1.])
>>> np. empty((2, 3))
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
>>> np.arange(0, 10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(4, 10)
array([4, 5, 6, 7, 8, 9])
>>> np.arange(0, 12, 3)
array([0, 3, 6, 9])
>>> np.arange(0, 6, 0.6) #前闭后开
 array([ 0. ,  0.6,  1.2,  1.8,  2.4,  3. ,  3.6,  4.2,  4.8,  5.4])
>>> np.arange(0, 12).reshape(3, 4)#3x4矩阵
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> np.linspace(0, 10, 5) #linspace()与arange()非常相似,不同:第三个参数指定分成几个部分,左闭右闭,均分。
 array([  0. ,   2.5,   5. ,   7.5,  10. ])
>>>  np.linspace(0, 10, 12).reshape(4, 3)
array([[  0.        ,   0.90909091,   1.81818182],
       [  2.72727273,   3.63636364,   4.54545455],
       [  5.45454545,   6.36363636,   7.27272727],
       [  8.18181818,   9.09090909,  10.        ]])
>>> np.random.random(3) #随机数[0.0, 1.0)
array([ 0.94909317,  0.71750078,  0.41642637])
>>> np.random.random((3, 3))
array([[ 0.71603364,  0.55855257,  0.03496732],
       [ 0.77959685,  0.3598885 ,  0.61941165],
       [ 0.531754  ,  0.15758114,  0.57497902]])
from numpy import random as np_random
>>> np.random.randint(1, 10, size=3)#起始位置,结束位置,元素个数;左闭右开;当size给定的是tuple,就是矩阵的shape
array([4, 3, 9])













猜你喜欢

转载自blog.csdn.net/zztingfeng/article/details/80053786