*My post explains prod() and cartesian_prod().
sum() can get the 0D or more D tensor of one or more sum’s elements not treating nan as zero from the 0D or more D tensor of zero or more elements as shown below:
*Memos:
sum() can be used with torch or a tensor.
The 1st argument(input) with torch or using a tensor(Required-Type:tensor of int, float, complex or bool).
The 2nd argument with torch or the 1st argument with a tensor is dim(Optional-Type:int, tuple of int or list of int).
The 3rd argument with torch or the 2nd argument with a tensor is keepdim(Optional-Default:False-Type:bool):
*Memos:
keepdim= must be used with dim=.
My post explains keepdim argument.
There is dtype argument with torch(Optional-Type:dtype):
*Memos:
If dtype is not given, it is inferred from input or a tensor.
dtype= must be used.
My post explains dtype argument.
Basically, the arithmetic operation with nan results in nan not treating nan as zero.
An empty tensor gets 0..
my_tensor = torch.tensor([1, 2, 3, 4])
torch.sum(input=my_tensor)
my_tensor.sum()
torch.sum(input=my_tensor, dim=0)
torch.sum(input=my_tensor, dim=-1)
torch.sum(input=my_tensor, dim=(0,))
torch.sum(input=my_tensor, dim=(–1,))
# tensor(10)
my_tensor = torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8]])
torch.sum(input=my_tensor)
torch.sum(input=my_tensor, dim=(0, 1))
torch.sum(input=my_tensor, dim=(0, –1))
torch.sum(input=my_tensor, dim=(1, 0))
torch.sum(input=my_tensor, dim=(1, –2))
torch.sum(input=my_tensor, dim=(–1, 0))
torch.sum(input=my_tensor, dim=(–1, –2))
torch.sum(input=my_tensor, dim=(–2, 1))
torch.sum(input=my_tensor, dim=(–2, –1))
# tensor(36)
torch.sum(input=my_tensor, dim=0)
torch.sum(input=my_tensor, dim=-2)
torch.sum(input=my_tensor, dim=(0,))
torch.sum(input=my_tensor, dim=(–2,))
# tensor([6, 8, 10, 12])
torch.sum(input=my_tensor, dim=1)
torch.sum(input=my_tensor, dim=-1)
torch.sum(input=my_tensor, dim=(1,))
torch.sum(input=my_tensor, dim=(–1,))
# tensor([10, 26])
my_tensor = torch.tensor([[1., 2., 3., 4.], [5., 6., 7., 8.]])
torch.sum(input=my_tensor)
# tensor(36.)
my_tensor = torch.tensor([[1., 2., 3., float(‘nan‘)], [5., 6., 7., 8.]])
torch.sum(input=my_tensor)
# tensor(nan)
my_tensor = torch.tensor([[1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j],
[5.+0.j, 6.+0.j, 7.+0.j, 8.+0.j]])
torch.sum(input=my_tensor)
# tensor(36.+0.j)
my_tensor = torch.tensor([[1.+0.j, 2.+0.j, 3.+0.j, complex(‘nan+nanj‘)],
[5.+0.j, 6.+0.j, 7.+0.j, 8.+0.j]])
torch.sum(input=my_tensor)
# tensor(nan+nanj)
my_tensor = torch.tensor([[True, False, True, False],
[False, True, False, True]])
torch.sum(input=my_tensor)
# tensor(4)
my_tensor = torch.tensor([])
torch.sum(input=my_tensor)
# tensor(0.)
nansum() can get the 0D or more D tensor of one or more sum’s elements, treating nan as zero from the 0D or more D tensor of zero or more elements as shown below:
*Memos:
nansum() can be used with torch or a tensor.
The 1st argument(input) with torch or using a tensor(Required-Type:tensor of int, float or bool).
The 2nd argument with torch or the 1st argument with a tensor is dim(Optional-Type:int, tuple of int or list of int).
The 3rd argument with torch or the 2nd argument with a tensor is keepdim(Optional-Default:False-Type:bool):
*Memos:
keepdim= must be used with dim=.
My post explains keepdim argument.
There is dtype argument with torch(Optional-Type:dtype):
*Memos:
If dtype is not given, it is inferred from input or a tensor.
dtype= must be used.
My post explains dtype argument.
Basically, the arithmetic operation with nan results in nan not treating nan as zero.
An empty tensor gets 0..
my_tensor = torch.tensor([1., 2., 3., float(‘nan‘)])
torch.nansum(input=my_tensor)
my_tensor.nansum()
torch.nansum(input=my_tensor, dim=0)
torch.nansum(input=my_tensor, dim=-1)
torch.nansum(input=my_tensor, dim=(0,))
torch.nansum(input=my_tensor, dim=(–1,))
# tensor(6.)
my_tensor = torch.tensor([[1., 2., 3., float(‘nan‘)], [5., 6., 7., 8.]])
torch.nansum(input=my_tensor)
torch.nansum(input=my_tensor, dim=(0, 1))
torch.nansum(input=my_tensor, dim=(0, –1))
torch.nansum(input=my_tensor, dim=(1, 0))
torch.nansum(input=my_tensor, dim=(1, –2))
torch.nansum(input=my_tensor, dim=(–1, 0))
torch.nansum(input=my_tensor, dim=(–1, –2))
torch.nansum(input=my_tensor, dim=(–2, 1))
torch.nansum(input=my_tensor, dim=(–2, –1))
# tensor(32.)
torch.nansum(input=my_tensor, dim=0)
torch.nansum(input=my_tensor, dim=-2)
torch.nansum(input=my_tensor, dim=(0,))
torch.nansum(input=my_tensor, dim=(–2,))
# tensor([6., 8., 10., 8.])
torch.nansum(input=my_tensor, dim=1)
torch.nansum(input=my_tensor, dim=-1)
torch.nansum(input=my_tensor, dim=(1,))
torch.nansum(input=my_tensor, dim=(–1,))
# tensor([6., 26.])
my_tensor = torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8]])
torch.nansum(input=my_tensor)
# tensor(36)
my_tensor = torch.tensor([[True, False, True, False],
[False, True, False, True]])
torch.nansum(input=my_tensor)
# tensor(4)
my_tensor = torch.tensor([])
torch.nansum(input=my_tensor)
# tensor(0.)