python中list和numpy中array,matrix的全面辨析

作者:大话西游666
链接:http://www.imooc.com/article/31107
来源:慕课网

list是python中的普通列表对象,而array和matrix是python numpy库中封装的两个对象,array就是我们常说的数组,matrix是矩阵。本文先探讨list、array和matrix的异同,然后分析一下在tensorflow中,创建的随机变量属于哪种类型。

1、list

list可以明显的与array,matrix区别开来。list通过[ ]申明,支持append和expend等方法,没有shape属性。使用如下:
append( ):

data = []
data.append([1,2])
print(data)

输出:

[[1, 2]]

extend( ):

data.extend([1,2])
print(data)

输出:

[[1, 2], 1, 2]

可以看出,append( )和extend( )虽然都是连接list,但是append( )是将[1, 2]整体作为一个对象,添加到list中,而extend是将[1, 2]分别作为1和2两个序列,添加到list中。

2、array和matrix

它俩都有shape属性,但是matrix只能是二维的,shape只有行和列属性,而array可以是n维的。
乘法:
array的*就是对应元素相乘,如果行或列数不匹配会自动补全,这就是numpy的”广播”。
array想要实现矩阵相乘,使用np.dot(array1, array2)
matrix的*就是矩阵相乘。
matrix想要实现对应元素相乘,使用np.multiply(mat1, mat2)

3、总结list、array和matrix的区别

list是Python中的普通列表对象,支持append和attend操作,没有shape属性;array和matrix是numpy数据库中的对象,不支持append和attend操作,具有shape属性。
一个list中可以存放不同类型的数据,如int、float、str,或者布尔型;而array和matrix中只能存放相同类型的数据。
list不支持乘法操作;array和matrix支持乘法操作。
list对象不支持一次性读取一行或一列,只能通过指针进行元素的索引;array和matrix即支持一次性读取一行或一列,也支持通过指针来进行元素的索引。

a = [[1, 2, 3], [4, 5, 6]]
print(a[0])     # 输出:[1, 2, 3]
print(a[1])     # 输出:[4, 5, 6]
print(a[:, 0])  # 输出:TypeError: list indices must be integers or slices, not tuple1234
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[0])     # 输出:[1, 2, 3]
print(a[:, 0])  # 输出:[1, 4]

4、list、array和matrix之间的转换

list变成array:np.array(list)
list变成matrix:np.mat(list)
array和matrix相互转换:np.asmatrix( )和np.asarray( )
array变成list:data.tolist( )

5、tensorflow中tf.random_( )生成的随机变量

shape为一维整数或array(数组)
tf.shape( )和tf.get_shape( )比较:
都可以获取shape,但是tf.shape( )中数据类型可以是tensor,list,array;
tf.get_shape( )的数据类型只能为tensor,返回的是一个tuple,可以通过data.get_shape( ) as_list( )得到一个list。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值