python torch size shape len

import torch
out = torch.zeros(2,3)
print(out)
# tensor([[0., 0., 0.],
#         [0., 0., 0.]])


out = torch.zeros(2,3).long()
# tensor([[0, 0, 0],
#         [0, 0, 0]])

print(type(out))  #<class 'torch.Tensor'>
print(out.size())  #[2, 3]
print(out.size()[0])  #2
print(out.size()[1])  #3


b1 = torch.rand(3,3)
print(b1)
# tensor([[0.0437, 0.8032, 0.8383],
#         [0.0690, 0.0911, 0.9489],
#         [0.5196, 0.9896, 0.9916]])

b1_1=b1+2
print(b1_1)
# tensor([[2.0437, 2.8032, 2.8383],
#         [2.0690, 2.0911, 2.9489],
#         [2.5196, 2.9896, 2.9916]])

print(b1_1.long())
# tensor([[2, 2, 2],
#         [2, 2, 2],
#         [2, 2, 2]])

b2=torch.FloatTensor([[2,3],[4,5],[6,7]])
print(b2)
# tensor([[2., 3.],
#         [4., 5.],
#         [6., 7.]])

print(b2.long())
# tensor([[2, 3],
#         [4, 5],
#         [6, 7]])
print('###################')

len()

len()是python内置函数

python中ndarray是什么:

ndarray全称The N-dimensional array,是Numpy中的数据结构,是一个多维数组,存储着相同类型和大小的元素的多维数组。数组的维度和每个数组中的元素是由shape来决定的。数组中的元素类型是由dtype决定的。

功能:在矢量运算中可以大大的节省运算空间,而且是很快速的实现

访问:与其他python中的对象容器一样,ndarray中的内容可以由数组的下标来访问。

生成ndarray:生成数组最简单的方法就是使用array函数,array函数接收任意的序列型对象,生成一个Numpy数组。

创建ndarray

import numpy as  np

# 常规创建方法
# x = np.array(list/tuple) #默认的数据基本都是浮点型

x = np.array([1,2]) #默认的数据基本都是浮点型
print(x, x.dtype)
# [1 2]    int32


b = np.array([2.0,3.0,4.0])
print(b, b.dtype)
#[ 2.  3.  4.] float64



x = np.array((1,2)) #默认的数据基本都是浮点型
print(x)
# [1 2]


# x = np.array(list/tuple, dtype = np.float32) #指定数据类型
x = np.array([3,4], dtype = np.float32) #指定数据类型
print(x)
# [3. 4.]

size()和shape() 是numpy模块中才有的函数

size() 计算数组和矩阵所有数据的个数 

shape ():得到矩阵每维的大小 ,是一个元组

比如 numpy.shape(a) 或者 numpy.size(a),此时他们是函数

shape和size既可以作为函数,也可以作为ndarray的属性 

比如a.shape或者a.size,此时他们是属性,但是a.shape()和a.size()是错的


import numpy as  np
out1 = np.zeros((2,3))  #'numpy.ndarray' object has no attribute 'long'
print(out1)
# [[0. 0. 0.]
#  [0. 0. 0.]]

print(type(out1))  #<class 'numpy.ndarray'>
print(out1.shape)  #(2, 3) out1.shape()错误
print(out1.shape[0])  #2
print(out1.shape[1])  #3

print('-------------------------')

a = np.arange(0,12).reshape((4,3))
a1 = np.arange(0,12).reshape((3,4))
print(a.size)  #12  个数
print(np.size(a))  #12

print(a1.shape)  #(3,4)  维数形状
print(a1.shape[0])  #3
print(a1.shape[1])  #4

print(np.shape(a1))  #(3,4)
print(type(np.shape(a1)))  #<class 'tuple'>
print(np.shape(a1)[0])  #3
print(np.shape(a1)[1])  #4
print('*****************')

b = np.arange(0,6).reshape((2,3))
print(b.reshape((3,2)))# 不改变数组本身的形状
# [[0 1]
#  [2 3]
#  [4 5]]
print(b)
# [[0 1 2]
#  [3 4 5]]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值