您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

munpy学习笔记

目录

  • numpy
    • 1、创建 numpy.array
      • 1.1、常规创建 numpy.array 的方法
      • 1.2、其他创建 numpy.array 的方法
      • 1.2、其他创建随机数 random
    • 2、numpy.array 基本操作
      • 2.1、numpy.array 的基本属性
      • 2.2、numpy.array 的数据访问
      • 2.3、numpy.array 合并和分割

numpy

为什么要用numpy

Python中提供了list容器,可以当作数组使用。但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3]。就需要三个指针和三个整数对象。对于数值运算来说,这种结构显然不够高效。Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组(在TensorFlow里面偏向于矩阵理解),也没有各种运算函数。因而不适合数值运算。NumPy的出现弥补了这些不足

(——摘自张若愚的《Python科学计算》)

1、创建 numpy.array

1.1、常规创建 numpy.array 的方法

import numpy as np
# 常规创建方法
a = np.array([2,3,4])
b = np.array([2.0,3.0,4.0])
c = np.array([[1.0,2.0],[3.0,4.0]])
d = np.array([[1,2],[3,4]],dtype="float") # 指定数据类型, numpy中默认类型为float

1.2、其他创建 numpy.array 的方法

import numpy as np
# 创建全零数组
np.zeros(10)                          # array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])                    
np.zeros(10, dtype=float)             # array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])
np.zeros((3, 5))                      # array([[ 0.,  0.,  0.,  0.,  0.],
                                      #       [ 0.,  0.,  0.,  0.,  0.],
                                      #       [ 0.,  0.,  0.,  0.,  0.]])    
np.zeros(shape=(3, 5), dtype=int)     # array([[0, 0, 0, 0, 0],
                                      #       [0, 0, 0, 0, 0],
                                      #       [0, 0, 0, 0, 0]])
# 创建全一数组
np.ones(10)                           # array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])
np.ones((3, 5))                       # array([[ 1.,  1.,  1.,  1.,  1.],
                                      #        [ 1.,  1.,  1.,  1.,  1.],
                                      #        [ 1.,  1.,  1.,  1.,  1.]])
# 创建指定值数组            
np.full((3, 5), 666)                  # array([[666, 666, 666, 666, 666],
                                      #        [666, 666, 666, 666, 666],
                                      #        [666, 666, 666, 666, 666]])
np.full(fill_value=666, shape=(3, 5)) # array([[666, 666, 666, 666, 666],
                                      #        [666, 666, 666, 666, 666],
                                      #        [666, 666, 666, 666, 666]])
# 创建arange数组
np.arange(0, 10)                      # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(0, 20, 2)                   # array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])
np.arange(0, 1, 0.2)                  # array([ 0. ,  0.2,  0.4,  0.6,  0.8])
# 创建等差数列
np.linspace(0, 20, 10)                # array([  0.        ,   2.22222222,   4.44444444,   6.66666667,  8.88888889,  11.11111111,  13.33333333,  15.55555556,   17.77777778,  20.        ])
np.linspace(0, 20, 11)                # array([  0.,   2.,   4.,   6.,   8.,  10.,  12.,  14.,  16.,  18.,  20.])
np.linspace(0, 1, 5)                  # array([ 0.  ,  0.25,  0.5 ,  0.75,  1.  ])

1.2、其他创建随机数 random

import numpy as np
# 创建随机整数
np.random.randint(0, 10)              # [0, 10)之间的随机整数
np.random.randint(0, 10, 10)          # array([2, 6, 1, 8, 1, 6, 8, 0, 1, 4])
np.random.randint(0, 1, 10)           # array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
np.random.randint(0, 10, size=10)     # array([3, 4, 9, 9, 5, 2, 3, 3, 2, 1])
np.random.randint(0, 10, size=(3,5))  # array([[1, 5, 3, 8, 5],
                                      #        [2, 7, 9, 6, 0],
                                      #        [0, 9, 9, 9, 7]])
np.random.randint(10, size=(3,5))     # array([[4, 8, 3, 7, 2],
                                      #        [9, 9, 2, 4, 4],
                                      #        [1, 5, 1, 7, 7]])
# 创建随机种子
np.random.seed(666)
np.random.randint(0, 10, size=(3, 5)) # array([[2, 6, 9, 4, 3],
                                      #        [1, 0, 8, 7, 5],
                                      #        [2, 5, 5, 4, 8]])
np.random.seed(666)
np.random.randint(0, 10, size=(3,5))  # array([[2, 6, 9, 4, 3],
                                      #        [1, 0, 8, 7, 5],
                                      #        [2, 5, 5, 4, 8]])
# 创建随机小数
np.random.random()                    # (0, 1)之间的随机小数
np.random.random((3,5))               # array([[ 0.8578588 ,  0.76741234,  0.95323137,  0.29097383,  0.84778197],
                                      #        [ 0.3497619 ,  0.92389692,  0.29489453,  0.52438061,  0.94253896],
                                      #        [ 0.07473949,  0.27646251,  0.4675855 ,  0.31581532,  0.39016259]])
# 正态分布数
np.random.normal()                    # 0.9047266176428719
np.random.normal(10, 100)             # -72.62832650185376
np.random.normal(0, 1, (3, 5))        # array([[ 0.82101369,  0.36712592,  1.65399586,  0.13946473, -1.21715355],
                                      #        [-0.99494737, -1.56448586, -1.62879004,  1.23174866, -0.91360034],
                                      #        [-0.27084407,  1.42024914, -0.98226439,  0.80976498,  1.85205227]])
 


2、numpy.array 基本操作

2.1、numpy.array 的基本属性

import numpy as np
x = np.arange(10)
X = np.arange(15).reshape((3, 5))
# 查看维数
x.ndim                            # 1
X.ndim                            # 2
x.shape                           # (10,)
X.shape                           # (3, 5)
x.size                            # 10
X.size                            # 15

2.2、numpy.array 的数据访问

import numpy as np
x = np.arange(10)
X = np.arange(15).reshape((3, 5))
x[0]                              # 0
x[-1]                             # 9
X                                 # array([[ 0,  1,  2,  3,  4],
                                  #        [ 5,  6,  7,  8,  9],
                                  #        [10, 11, 12, 13, 14]])
X[0, 0]                           # 0
X[0, -1]                          # 4
x                                 # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
x[0:5]                            # array([0, 1, 2, 3, 4])
x[:5]                             # array([0, 1, 2, 3, 4])
x[5:]                             # array([5, 6, 7, 8, 9])
x[::2]                            # array([0, 2, 4, 6, 8])
x[1::2]                           # array([1, 3, 5, 7, 9])
x[::-1]                           # array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
X[:2, :3]                         # array([[0, 1, 2],
                                  #        [5, 6, 7]])
X[:2][:3]                         # 结果不一样,在numpy中使用","做多维索引
                                  # array([[0, 1, 2, 3, 4],
                                  #        [5, 6, 7, 8, 9]])

X[:2, ::2]                        # array([[0, 2, 4],
                                  #        [5, 7, 9]])
X[::-1, ::-1]                     # array([[14, 13, 12, 11, 10],
                                  #        [ 9,  8,  7,  6,  5],
                                  #        [ 4,  3,  2,  1,  0]])
X[0, :]                           # array([0, 1, 2, 3, 4]) 
X[:, 0]                           # array([ 0,  5, 10])

2.3、numpy.array 合并和分割

import numpy as np
# numpy.array 的合并
x = np.array([1, 2, 3])
y = np.array([3, 2, 1])
np.concatenate([x, y])                           # array([1, 2, 3, 3, 2, 1])
A = np.array([[1, 2, 3],
              [4, 5, 6]])
np.concatenate([A, A])                           # array([[1, 2, 3],
                                                 #        [4, 5, 6],
                                                 #        [1, 2, 3],
                                                 #        [4, 5, 6]])
np.concatenate([A, A], axis=1)
                                                 # array([[1, 2, 3, 1, 2, 3],
                                                 #        [4, 5, 6, 4, 5, 6]])



分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进