NumPy数据对象2 —— ndarray的转换和计算

一、数组转换

  1. obj.item(*args)
# 复制数组中的元素,并以标准Python常量的形式返回。
...
	def item(self, *args):
		"""
		parameter:
		*args: 
			- None: 只有当数组a.size == 1时才能正确执行。
			- int_type: 作为数组索引,并返回对应位置元素。
			- tuple of int_type: 作为数组索引,并返回对应元素。
		return:
		z: 标准Python常量对象。
		"""
...
>>>np.random.seed(123)
>>>x = np.random.randint(9, size=(3, 3))
>>>x
array([[2, 2, 6],
       [1, 3, 6],
       [1, 0, 1]])
>>>x.item(3)
1
x.item(7)
0
>>>x.item((0, 1))
2
>>>x.item((2, 2))
1
  1. obj.tolist()
# 辅助数组,并转换为嵌套列表的形式返回。
...
	def tolist(self):
		"""
		parameter: None
		return: 
		y: 嵌套的列表对象。
		"""
...
>>>a = np.uint32([1, 2])
>>>a_list = list(a)
>>>a_list
[1, 2]
>>>type(a_list[0])
<class 'numpy.uint32'>
>>>a_tolist = a.tolist()
>>>a_tolist
[1, 2]
>>>type(a_tolist[0])
<class 'int'>

>>>a = np.array([[1, 2], [3, 4]])
>>>list(a)
[array([1, 2]), array([3, 4])]
>>>a.tolist()
[[1, 2], [3, 4]]

>>>a = np.array(1)
>>>list(a)
Traceback (most recent call last):
  ...
TypeError: iteration over a 0-d array
>>>a.tolist()
1
  1. obj.tobytes(order="C)
# 与obj.tostring()相同,构返回数组中数据构造的字节。
...
	def tobyters(self, order='C'):
		"""
		parameter:
		order: {'C', 'A', 'F'}
		return: 
		s: bytes。
		"""
...
>>>x = np.array([[0, 1], [2, 3]], dtype='<u2')
>>>x.tobytes()
b'\x00\x00\x01\x00\x02\x00\x03\x00'
>>>x.tobytes('C') == x.tobytes()
True
>>>x.tobytes('F')
b'\x00\x00\x02\x00\x01\x00\x03\x00'

二、ndarray算术、矩阵乘法和比较运算

1、比较运算符

  • ndarray._lt_(self, value, /) :返回 self<value.
  • ndarray._le_(self, value, /) :返回 self<=value.
  • ndarray._gt_(self, value, /) :返回 self>value.
  • ndarray._ge_(self, value, /) :返回 self>=value.
  • ndarray._eq_(self, value, /) :返回 self==value.
  • ndarray._ne_(self, value, /) :返回 self!=value.

2、算术运算

  • ndarray.__add__(self, value, /) :返回 self+value.
  • ndarray.__sub__(self, value, /): 返回 self-value.
  • ndarray.__mul__(self, value, /) : 返回 self*value.
  • ndarray.__truediv__(self, value, /) :返回 self/value.
  • ndarray.__floordiv__(self, value, /) :返回 self//value.
  • ndarray.__mod__(self, value, /) :返回 self%value.
  • ndarray.__divmod__(self, value, /) :返回 divmod(self, value).
  • ndarray.__pow__(self, value[, mod]) :返回 pow(self, value, mod).
  • ndarray.__lshift__(self, value, /) :返回 self<<value.
  • ndarray.__rshift__(self, value, /) :返回 self>>value.
  • ndarray.__and__(self, value, /) :返回 self&value.
  • ndarray.__or__(self, value, /) :返回 self
  • ndarray.__xor__(self, value, /) :返回 self^value.

3、就地运算

  • ndarray.__iadd__(self, value, /) : 返回 self+=value。
  • ndarray.__isub__(self, value, /) : 返回 self==value。
  • ndarray.__imul__(self, value, /) : 返回 self*=value。
  • ndarray.__itruediv__(self, value, /) : 返回 self/=value。
  • ndarray.__ifloordiv__(self, value, /) : 返回 self//=value。
  • ndarray.__imod__(self, value, /) : 返回 self%=value。
  • ndarray.__ipow__(self, value, /) : 返回 self**=value。
  • ndarray.__ilshift__(self, value, /) : 返回 self<<=value。
  • ndarray.__irshift__(self, value, /) : 返回 self>>=value。
  • ndarray.__iand__(self, value, /) : 返回 self&=value。
  • ndarray.__ior__(self, value, /) :返回 self
  • ndarray.__ixor__(self, value, /) : 返回 self^=value。

4、矩阵乘法

  • ndarray.__matmul__(self, value, /) : 返回 self@value。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值