numpy库的基本使用

2018-10-14  本文已影响0人  煮茶boy

NumPy,是Numerical Python的简称,它是目前Python数值计算中最为重要的基础包.大多数计算包(包括pandas)都提供了基于NumPy的科学函数功能,将NumPy的数组对象作为数据交换的通用语.

>>>import numpy as np
>>>arr = np.random.randn(2,3)
>>>print(type(arr))
<class 'numpy.ndarray'>

>>>print(data)
[[-1.23217596  0.87912426 -0.28587639]
 [-0.41863888  2.48746006 -0.25920674]]

>>>print(arr*10)
[[-12.32175956   8.79124263  -2.85876385]
 [ -4.18638876  24.87460064  -2.59206742]]

>>>print(data+arr*10)
[[-13.55393552   9.67036689  -3.14464024]
 [ -4.60502763  27.3620607   -2.85127416]]

!!! 需要注意的是,ndarray包含的每一个元素都是相同的类型.

>>>print(arr.shape)
(2, 3)   -- 第一维2个元素,第二维3个元素
>>>print(arr.dtype)
float64
>>>list1 = [1, 2, 3, 4, 5]
>>>a = np.array(list1)
>>>print(a)
[1 2 3 4 5]

>>>list2 = [(1, 2, 3), (4, 5)]
>>>b = np.array(list2)
>>>print(b)
[(1, 2, 3) (4, 5)]

>>>print(b.shape)    --- 因为第二维度长度不一样,所以ndarray显示只有一个维度
(2,)
>>>list3 = [(1, 2, 3), (4, 5, 6)]
>>>c = np.array(c)
>>>print(c)
[[1 2 3]
 [4 5 6]]
>>>print(c.shape)
(2, 3)
>>>print(c.ndim)   --- 不是最外面数组的长度,是维数
2
>>>a = np.arange(13)
>>>print(type(a))
<class 'numpy.ndarray'>
>>>print(a)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12]
array()        --- 将传入的序列转换为ndarray
asarray()      --- 将输入转换为ndarray,但如果输入已经是ndarray,则不再复制
arange()       --- 将一个范围转换为一个数组
ones()         --- 根据给定的形状和数据类型生成全1的数组
ones_like()    --- 根据给定的数组根据形状生成一个形状一样的全1的数组
zeros()        --- 根据给定的形状和数据类型生成全1的数组
zeros_like()   --- 根据给定的数组根据形状生成一个形状一样的全0的数组
empty()        --- 根据给定的形状生成一个没有初始化数值的空数组
empty_like()   --- 根据给定的数组根据形状生成一个形状一样但没有初始化的空数组
full()         --- 根据给定的形状和数据类型生成指定数值的数组
full_like()    --- 根据给定的数组根据形状生成一个形状一样但内容是指定数值的数组
eye(), indentity()   --- 生成一个N x N特征矩阵(对角线位置都是1,其余位置都是0)
>>>print(a.dtype)
int32
>>>b = a.astype(np.float64)   --- 会生成一个新的数组
>>>print(b.dtype)
float64
>>>arr = np.array([[1, 2, 3], [4, 5, 6]])
>>>print(arr)
[[1 2 3]
 [4 5 6]]
>>>arr2 = arr*arr
>>>print(arr2)    ---- 一一对应相乘,不是矩阵相乘
[[ 1  4  9]
 [16 25 36]]
>>>print(arr2-arr)
[[ 0  2  6]
 [12 20 30]]
>>>arr3 = np.array([[2, 2], [3, 3]])
>>>print(arr3)
[[2 2]
 [3 3]]
>>>print(arr3*arr)
  ValueError: operands could not be broadcast together with shapes (2,2) (2,3)
>>>print(arr3-arr)
  ValueError: operands could not be broadcast together with shapes (2,2) (2,3)
>>>print(arr2>arr)
[[False  True  True]
 [ True  True  True]]
>>>print(1/arr)
[[1.         0.5        0.33333333]
 [0.25       0.2        0.16666667]]
上一篇 下一篇

猜你喜欢

热点阅读