在Ipython中,我可以使用tab complete来查看方法:
In [1277]: x=123; y=np.int32(123)
int方法和属性:
In [1278]: x.<tab>x.bit_length x.denominator x.imag x.numerator x.to_bytesx.conjugate x.from_bytes x.real
int“经营者”
In [1278]: x.__<tab>x.__abs__x.__init__ x.__rlshift__x.__add__x.__int__x.__rmod__x.__and__x.__invert__ x.__rmul__x.__bool__ x.__le__ x.__ror__...x.__gt__ x.__reduce_ex__ x.__xor__x.__hash__ x.__repr__ x.__index__ x.__rfloordiv__
np.int32方法和属性(或属性)。一些相同,但更多的是,基本上所有
ndarray的:
In [1278]: y.<tab>y.T y.denominator y.ndim y.sizey.ally.diagonal y.newbyteorder y.sorty.anyy.dtype y.nonzero y.squeeze ...y.cumsum y.miny.setflags y.data y.nbytes y.shape
该
y.__方法看起来很像
int的。他们可以做同样的数学。
In [1278]: y.__<tab>y.__abs__ y.__getitem__ y.__reduce_ex__y.__add__ y.__gt__ y.__repr__...y.__format__y.__rand__ y.__subclasshook__y.__ge__ y.__rdivmod__ y.__truediv__y.__getattribute__ y.__reduce__y.__xor__
y在很多方面与0d数组相同。不相同,但接近。
In [1281]: z=np.array(123,dtype=np.int32)
np.int32当我索引该类型的数组时得到的是:
In [1300]: A=np.array([0,123,3])In [1301]: A[1]Out[1301]: 123In [1302]: type(A[1])Out[1302]: numpy.int32
我必须使用
item删除所有
numpy包装。
In [1303]: type(A[1].item())Out[1303]: int
作为
numpy用户,an
np.int32是
int带有
numpy包装的。或相反的单个元素
ndarray。通常,我不关心
A[0]是给我“本机”
int还是给我numpy等价物。与一些新用户相反,我很少使用
np.int32(123);
我会
np.array(123)改用。
A = np.array([1,123,0], np.int32)
不包含3个
np.int32对象。而是其数据缓冲区为3 * 4 =
12字节长。正是数组开销将其在一维中解释为3个整数。并
view显示我不同的解释相同的DataBuffer:
In [1307]: A.view(np.int16)Out[1307]: array([ 1, 0, 123, 0, 0, 0], dtype=int16)In [1310]: A.view('S4')Out[1310]: array([b'x01', b'{', b''], dtype='|S4')
只有当我为单个元素建立索引时,我才能获得
np.int32对象。
列表
L=[1, 123, 0]不一样;它是一个指针列表-指向
int内存中其他对象的指针。类似地,对于dtype = object数组。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)