张量的创建、属性及运算

 1. 张量的创建

import numpy as np
  • 标量(0D 张量)
x = np.array(1)
print(x)
print(x.ndim)
1
0
  •  向量(1D 张量)
y = np.array([1,2,3])
print(y)
print(y.ndim)
[1 2 3]
1
  •  矩阵(2D 张量)
z = np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])
print(z)
print(z.ndim)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
2
  •  3D 张量
# 三维张量中,每一个元素都是一个二维的矩阵
n_z= np.array([z,z*2,z*3])        
print(n_z)
print(n_z.ndim)
[[[ 1  2  3]
  [ 4  5  6]
  [ 7  8  9]]

 [[ 2  4  6]
  [ 8 10 12]
  [14 16 18]]

 [[ 3  6  9]
  [12 15 18]
  [21 24 27]]]
3

2. 张量的属性

  • 张量的形状
z.shape
(3, 3)

注:z.shape可以看做一个一维向量(3,3,3),利用 z.shape[] 遍历张量 z 的行和列,实现循环。

举个栗子:

#将张量array1复制给张量array2
array1 = np.array( [[1,2,3],[4,5,6],[7,8,9]] )
array2 = array1.copy()
for i in range(array1.shape[0]):
    for j in range(array1.shape[1]):
        array2[i, j] = array1[i, j]
print(array2)
  • 张量的类型 
z.dtype
dtype('int32')
  • 张量的维度
z.ndim
2
  •  元素个数
z.size
9
  •  内存所占字节数
z.itemsize
4

3. 张量的运算

  •  逐项运算

对应相同位置上的运算

import numpy as np
a = np.array([[1,2],
              [1,1]])
b = np.array([[2,3],
              [4,5]])
print(a + b)
print(a * b)
array([[3, 5],
       [5, 6]])
array([[2, 6],
       [4, 5]])
  • 扩大倍数
a*5
array([[5, 10],
       [5, 5]])
  •  点积
np.dot(a,b)
array([[10, 13],
       [ 6,  8]])
  • 转置 
np.transpose(a)
array([[1, 1],
       [2, 1]])

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值