numpy的np.nanmax和np.max区别(坑)

numpy的np.nanmax和np.array([1,2,3,np.nan]).max()的区别(坑)

numpy中numpy.nanmax的官方文档

原理

    在计算dataframe最大值时,最先用到的一定是Series对象的max()方法(),最终结果是4。

s1 = pd.Series([1,2,3,4,np.nan])
s1_max = s1.max()

    但是笔者由于数据量巨大,列数较多,于是为了加快计算速度,采用numpy进行最大值的计算,但正如以下代码,最终结果得到的是nan,而非4。发现,采用这种方式计算最大值,nan也会包含进去,并最终结果为nan。
s1 = pd.Series([1,2,3,4,np.nan])
s1_max = s1.values.max()
>>>nan

    通过阅读numpy的文档发现,存在np.nanmax的函数,可以将np.nan排除进行最大值的计算,并得到想要的正确结果。

当然不止是max,min 、std、mean 均会存在列中含有np.nan时,s1.values.min /std/mean ()返回nan的情况。

速度区别

速度由快到慢依次:

s1 = pd.Series([1,2,3,4,5,np.nan])
#速度由快至慢
np.nanmax(s1.values) > np.nanmax(s1) > s1.max() 
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
numpy.ndarray和np.array都是用于表示多维数组的数据结构,但它们在使用方式和功能上有些许不同。 numpy.ndarray是NumPy库提供的一个多维数组对象。它是一个灵活的容器,可以存储具有相同数据类型的元素,并提供了对这些元素进行高效操作的方法。numpy.ndarray可以通过不同的函数进行创建,如numpy.array()、numpy.zeros()、numpy.ones()等。它具有很多强大的功能,例如索引和切片操作、数学运算、线性代数操作、统计计算等。numpy.ndarray在计算机视觉库OpenCV和机器学习库scikit-learn中被广泛使用。 而np.array是NumPy库中一个常用的函数,用于创建numpy.ndarray数组。np.array函数接受一个列表、元组或其他可迭代对象作为输入,然后返回一个新的numpy.ndarray数组。np.array函数的灵活性使得创建数组变得简单和方便。它是numpy.ndarray的一个创建方式之一,可以用于创建各种形状和维度的数组。除了np.array之外,还可以使用其他NumPy库中提供的函数来创建numpy.ndarray数组。 总结来说,numpy.ndarray是NumPy库提供的多维数组对象,而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、付费专栏及课程。

余额充值