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)) #
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)) #
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))) #
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]]