Numpy的相关操作

参考链接: https://www.runoob.com/numpy/numpy-array-from-numerical-ranges.html.

数组属性

在这里插入图片描述

创建数组

可以使用array函数

从常规的Python列表和元组创造数组。所创建的数组类型由原序列中的元素类型推导而来。

from numpy  import *
a = array( [2,3,4] )
a
array([2, 3, 4])


b = array([(1.5,2,3),(4,5,6)])
b
array([[ 1.5,  2. ,  3. ],
       [ 4. ,  5. ,  6. ]])

函数function创建

函数ones创建一个全1的数组,函数empty创建一个内容随机并且依赖与内存状态的数组。默认创建的数组类型(dtype)都是float64。

zeros((3,4))
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])
       
ones((2,3,4),dtype=int16)                # dtype can also be specified
array([[[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]],

       [[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]], dtype=int16)
        
empty((2,3))
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

numpy.arange

numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)
根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。(不包含end

参数说明:

参数描述
start起始值,默认为0
stop终止值(不包含)
step步长,默认为1
dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
import numpy as np
 
x = np.arange(5)  
print (x)
[0  1  2  3  4]



import numpy as np

# 设置了 dtype
x = np.arange(5, dtype =  float)  
print (x)
[0.  1.  2.  3.  4.]

numpy.linspace

numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数说明:

参数描述
start序列的起始值
stop序列的终止值,如果endpoint为true,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为 true 时,数列中中包含stop值,反之不包含,默认是True。
retstep如果为 True 时,生成的数组中会显示间距,反之不显示。
dtypendarray 的数据类型

以下实例用到三个参数,设置起始点为 1 ,终止点为 10,数列个数为 10。

import numpy as np
a = np.linspace(1,10,10)
print(a)
#输出结果为:

[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

设置元素全部是1的等差数列:

#实例
import numpy as np
a = np.linspace(1,1,10)
print(a)
#输出结果为:

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]


将 endpoint 设为 false,不包含终止值:

实例
import numpy as np
 
a = np.linspace(10, 20,  5, endpoint =  False)  
print(a)
输出结果为:

[10. 12. 14. 16. 18.]
如果将 endpoint 设为 true,则会包含 20

打印数组

当你打印一个数组,NumPy以类似嵌套列表的形式显示它,但是呈以下布局:

最后的轴从左到右打印
次后的轴从顶向下打印
剩下的轴从顶向下打印,每个切片通过一个空行与下一个隔开
一维数组被打印成行,二维数组成矩阵,三维数组成矩阵列表。

a = arange(6)                         # 1d array
print (a)  

[0 1 2 3 4 5]

b = arange(12).reshape(4,3)           # 2d array
print (b)

[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
 
c = arange(24).reshape(2,3,4)         # 3d array
print (c)

[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

numpy 乘法

分类:

元素相乘:multply()
矩阵相乘:dot()、matmul()、’@’
’ * ': 是特别的。在数组操作中,作为元素相乘;在矩阵操作中作为矩阵相乘。

以下举例说明:

在数组上操作的效果:

import numpy as np

>>> a1 = np.array([[1,2,3],[4,5,6]])
>>> b1 = np.array([1,2,3])
>>> a2 = np.array([1,2,3])
>>> b2 = np.array([1,2,3])

>>> a1 * b1 # 对应元素相乘
[[ 1  4  9]
 [ 4 10 18]]
>>> a1 @ b1 # 矩阵相乘
[14 32]
>>> a2 * b2 # 对应元素相乘
[1 4 9]
>>> a2 @ b2 # 矩阵相乘
 14
>>> np.multiply(a1, b1), np.multiply(a2, b2) # 对应元素相乘
(array([[ 1,  4,  9],
        [ 4, 10, 18]]), array([1, 4, 9]))
        
>>> np.dot(a1, b1), np.dot(a2, b2) # 矩阵相乘
(array([14, 32]), 14)
        
>>> np.matmul(a1, b1), np.matmul(a2, b2) # 矩阵相乘
(array([14, 32]), 14)

在矩阵上的效果:

>>> a3 = np.matrix([[1,2,3],[4,5,6]])
>>> b3_1 = np.matrix([1,2,3])
>>> b3 = np.matrix([[1],[2],[3]])


>>> a3 * b3 # 矩阵相乘
[[14]
 [32]]

>>> a3 @ b3 # 矩阵相乘
[[14]
 [32]]

>>> np.multiply(a3,b3_1) # 对应元素相乘
matrix([[ 1,  4,  9],
        [ 4, 10, 18]])

>>> np.dot(a3, b3) # 矩阵相乘
matrix([[14],
        [32]])

>>> np.matmul(a3, b3) # 矩阵相乘
matrix([[14],
        [32]])


乘法运算转载链接: https://blog.csdn.net/u011851421/article/details/83783826.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值