Numpy

image

from pixiv


参考博客

NumPy中文网


小知识点

如何初始化一个np.array,其中的值是我们自定义的类?

在基础篇中,我们已经知道如下内容:

通常,数组的元素最初是未知的,但它的大小是已知的。因此,NumPy提供了几个函数来创建具有初始占位符内容的数组。这就减少了数组增长的必要,因为数组增长的操作花费很大。

函数zeros创建一个由0组成的数组,函数 ones创建一个完整的数组,函数empty 创建一个数组,其初始内容是随机的,取决于内存的状态。

但是当我们希望填充的是我们自己定义的内容该如何写呢?

class Cell:
    latitude=0.0
    longitude=0.0
    Person=0.0
    Num=0 # 这个cell的蜂王数量
    def __init__(self, latitude,longitude,Person,Num):
        self.latitude=latitude
        self.longitude=longitude
        self.Person=Person
        self.Num=Num

# 首先还是用zeros,但是记得dtype上写object
CaNp=np.zeros((latitudeRange.size,longitudeRange.size),dtype=object)

# 接下来只要for循环填充就行了:
for yi,y in enumerate(latitudeRange):
    for xi,x in enumerate(longitudeRange):
        CaNp[yi,xi]=Cell(y,x,0.0,0)

np.array如何从大到小排序?

一个比较基本的方法:使用切片

latitudeRange=np.sort(latitudeRange)[::-1] # np.sort首先是默认从小到大,我们再用切片将其翻转
posted @ 2024-01-10 19:18  次林梦叶  阅读(18)  评论(0)    收藏  举报