Java版的NumPy - NDArray 统计函数

NDArray 统计函数

1. 最小元素,最大元素
  • Python
    NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下:
    numpy.amin() 和 numpy.amax()
    numpy.amin() 用于计算数组中的元素沿指定轴的最小值。
    numpy.amax() 用于计算数组中的元素沿指定轴的最大值。
import numpy as np 
 
a = np.array([[3,7,5],[8,4,3],[2,4,9]])  
print ('我们的数组是:')
print (a)
print ('\n')
print ('调用 amin() 函数:')
print (np.amin(a,1))
print ('\n')
print ('再次调用 amin() 函数:')
print (np.amin(a,0))
print ('\n')
print ('调用 amax() 函数:')
print (np.amax(a))
print ('\n')
print ('再次调用 amax() 函数:')
print (np.amax(a, axis =  0))

# 输出结果如下:
我们的数组是:
[[3 7 5]
 [8 4 3]
 [2 4 9]]

调用 amin() 函数:
[3 3 2]

再次调用 amin() 函数:
[2 4 3]

调用 amax() 函数:
9

再次调用 amax() 函数:
[8 7 9]
  • Java
NDArray a = manager.create(new int[][]{{3, 7, 5}, {8, 4, 3}, {2, 4, 9}});
System.out.println("我们的数组是:");
System.out.println(a.toDebugString(100, 10, 100, 100));
System.out.println("调用 min() 函数:");
NDArray b = a.min(new int[]{1});
System.out.println(b.toDebugString(100, 10, 100, 100));
System.out.println("再次调用 min() 函数:");
b = a.min(new int[]{0});
System.out.println(b.toDebugString(100, 10, 100, 100));
System.out.println("调用 max() 函数:");
b = a.max();
System.out.println(b.toDebugString(100, 10, 100, 100));
System.out.println("再次调用 max() 函数:");
b = a.max(new int[]{0});
System.out.println(b.toDebugString(100, 10, 100, 100));


# 输出结果如下:
我们的数组是:
ND: (3, 3) cpu() int32
[[ 3,  7,  5],
 [ 8,  4,  3],
 [ 2,  4,  9],
]

调用 min() 函数:
ND: (3) cpu() int32
[ 3,  3,  2]

再次调用 min() 函数:
ND: (3) cpu() int32
[ 2,  4,  3]

调用 max() 函数:
ND: () cpu() int32
9

再次调用 max() 函数:
ND: (3) cpu() int32
[ 8,  7,  9]
2. 算术平均值
  • Python
    numpy.mean() 函数用于计算数组 a 中元素的算术平均值
import numpy as np 
 
a = np.array([[1,2,3],[3,4,5],[4,5,6]])  
print ('我们的数组是:')
print (a)
print ('\n')
print ('调用 mean() 函数:')
print (np.mean(a))
print ('\n')
print ('沿轴 0 调用 mean() 函数:')
print (np.mean(a, axis =  0))
print ('\n')
print ('沿轴 1 调用 mean() 函数:')
print (np.mean(a, axis =  1))

# 输出结果如下:
我们的数组是:
[[1 2 3]
 [3 4 5]
 [4 5 6]]

调用 mean() 函数:
3.6666666666666665

沿轴 0 调用 mean() 函数:
[2.66666667 3.66666667 4.66666667]

沿轴 1 调用 mean() 函数:
[2. 4. 5.]
  • Java
a = manager.create(new float[][]{{1, 2, 3}, {3, 4, 5}, {4, 5, 6}});
System.out.println("我们的数组是:");
System.out.println(a.toDebugString(100, 10, 100, 100));
System.out.println("调用 mean() 函数:");
b = a.mean();
System.out.println(b.toDebugString(100, 10, 100, 100));
System.out.println("沿轴 0 调用 mean() 函数:");
b = a.mean(new int[]{0});
System.out.println(b.toDebugString(100, 10, 100, 100));
System.out.println("沿轴 1 调用 mean() 函数:");
b = a.mean(new int[]{1});
System.out.println(b.toDebugString(100, 10, 100, 100));

# 输出结果如下:
我们的数组是:
ND: (3, 3) cpu() float32
[[1., 2., 3.],
 [3., 4., 5.],
 [4., 5., 6.],
]

调用 mean() 函数:
ND: () cpu() float32
3.6667

沿轴 0 调用 mean() 函数:
ND: (3) cpu() float32
[2.6667, 3.6667, 4.6667]

沿轴 1 调用 mean() 函数:
ND: (3) cpu() float32
[2., 4., 5.]
3. 标准差

标准差是一组数据平均值分散程度的一种度量。
标准差是方差的算术平方根。
标准差公式如下:

std = sqrt(mean((x - x.mean())**2))
  • Python
import numpy as np 
 
print (np.std([1,2,3,4]))

# 输出结果如下:
1.1180339887498949
  • Java
a = manager.create(new float[]{1,2,3,4});
b = a.sub(a.mean()).pow(2).mean().sqrt();
System.out.println(b.toDebugString(100, 10, 100, 100));
        
# 输出结果如下:
1.118
4. 方差

统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。
换句话说,标准差是方差的平方根。
方差公式如下:

mean((x - x.mean())** 2)
  • Python
import numpy as np
 
print (np.var([1,2,3,4]))

# 输出结果如下:
1.25
  • Java
a = manager.create(new float[]{1,2,3,4});
b = a.sub(a.mean()).pow(2).mean();
System.out.println(b.toDebugString(100, 10, 100, 100));
        
# 输出结果如下:
1.25

代码下载地址:

Github链接

Gitee链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
numpy.ndarraynp.array都是用于表示多维数组的数据结构,但它们在使用方式和功能上有些许不同。 numpy.ndarrayNumPy库提供的一个多维数组对象。它是一个灵活的容器,可以存储具有相同数据类型的元素,并提供了对这些元素进行高效操作的方法。numpy.ndarray可以通过不同的函数进行创建,如numpy.array()、numpy.zeros()、numpy.ones()等。它具有很多强大的功能,例如索引和切片操作、数学运算、线性代数操作、统计计算等。numpy.ndarray在计算机视觉库OpenCV和机器学习库scikit-learn中被广泛使用。 而np.arrayNumPy库中一个常用的函数,用于创建numpy.ndarray数组。np.array函数接受一个列表、元组或其他可迭代对象作为输入,然后返回一个新的numpy.ndarray数组。np.array函数的灵活性使得创建数组变得简单和方便。它是numpy.ndarray的一个创建方式之一,可以用于创建各种形状和维度的数组。除了np.array之外,还可以使用其他NumPy库中提供的函数来创建numpy.ndarray数组。 总结来说,numpy.ndarrayNumPy库提供的多维数组对象,而np.array是用于创建numpy.ndarray数组的一个函数numpy.ndarray提供了丰富的功能,可以进行各种数组操作和计算,而np.array则是创建numpy.ndarray数组的常用方式之一。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [48_Python列表和数组与numpy.ndarray的区别和使用方法](https://blog.csdn.net/qq_18351157/article/details/121414780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值