# ravel 和 flatten 的区别

np.ravel 返回原数组的一个 view,而 flatten 返回一个副本

# T 转置的内存规则

对于一个 ndarray 数组 A,A.T 是一个新的对象,即 id (A) 和 id (A.T) 不相等

但是二者共享底层的数据存储

# 数组顺序

  • K:内存顺序
  • C:行顺序
  • F:列顺序

# metaclass 元类

创建普通类的 “创世神”,普通类是元类的一个 instance

记住 super ().__new__的参数需要 cls,super ().__init__则无需显式传入 self

自定义元类 mymeta 继承 type

class mything (base,metaclass=mymeta),其中 mymeta 是我们自己定义的元类

# 切片

切片获得原数组的 view,修改反馈到原数组

0 维数组使用 [...] 来切片

... 即许多个 :

# 自定义 np.ndarray 类

先 new,new 中有 view (cls) 所以会调用 finalize,最后创建好后会 init

一般不写 init,直接在 new 中 np.asarray,view,属性赋值

当进行切片 or 创建视图时,会调用__array_finalize__方法

finalize 中,obj 是原数组,self 是新视图

总访问量:加载中...更新于

谢谢你请我喝[茶]!(๑OvO๑)♪

柳小寒寒子 微信支付

微信支付