numpy 基础1

numpy.array 基础

In [ ]:
import numpy
In [ ]:
numpy.__version__
In [ ]:
import numpy as np
In [ ]:
np.__version__

Python List的特点

In [ ]:
L = [i for i in range(10)]
L
In [ ]:
L[5]
In [ ]:
L[5] = 100
L
In [ ]:
L[5] = "Machine Learning"
L

Python的List不要求存储同样的类型,带来效率问题。

In [ ]:
import array
arr = array.array('i', [i for i in range(10)])
arr
In [ ]:
arr[5]
In [ ]:
arr[5] = 100
arr
In [ ]:
arr[5] = "Machine Learning"
In [ ]:
arr[5] = 5.0

array的缺点是没有将数据当做向量或者矩阵,不支持基本运算。

numpy.array

In [ ]:
nparr = np.array([i for i in range(10)])
nparr
In [ ]:
nparr[5] = 100
nparr
In [ ]:
nparr[5] = "Machine Learning"
In [ ]:
nparr.dtype
In [ ]:
nparr[5] = 5.0
nparr
In [ ]:
nparr.dtype
In [ ]:
nparr[5] = 3.14
nparr
In [ ]:
nparr2 = np.array([1, 2, 3.0])
nparr2.dtype

创建 numpy.array

In [ ]:
import numpy as np

numpy.array

In [ ]:
nparr = np.array([i for i in range(10)])
nparr

其他创建 numpy.array 的方法

zeros
In [ ]:
np.zeros(10)
In [ ]:
np.zeros(10, dtype=float)
In [ ]:
np.zeros((3, 5))
In [ ]:
np.zeros(shape=(3, 5), dtype=int)
ones
In [ ]:
np.ones(10)
In [ ]:
np.ones((3, 5))
full
In [ ]:
np.full((3, 5), 666)
In [ ]:
np.full(fill_value=666, shape=(3, 5))
arange
In [ ]:
[i for i in range(0, 20, 2)]
In [ ]:
np.arange(0, 20, 2)
In [ ]:
[i for i in range(0, 1, 0.2)]
In [ ]:
np.arange(0, 1, 0.2)
In [ ]:
[i for i in range(0, 10)]
In [ ]:
np.arange(0, 10)
In [ ]:
[i for i in range(10)]
In [ ]:
np.arange(10)
linspace
In [ ]:
np.linspace(0, 20, 10)
In [ ]:
np.linspace(0, 20, 11)
In [ ]:
np.linspace(0, 1, 5)
random
randint
In [ ]:
np.random.randint(0, 10)    # [0, 10)之间的随机数
In [ ]:
np.random.randint(0, 10, 10)
In [ ]:
np.random.randint(0, 1, 10)
In [ ]:
np.random.randint(0, 10, size=10)
In [ ]:
np.random.randint(0, 10, size=(3,5))
In [ ]:
np.random.randint(10, size=(3,5))
seed
In [ ]:
np.random.seed(666)
In [ ]:
np.random.randint(0, 10, size=(3, 5))
In [ ]:
np.random.seed(666)
np.random.randint(0, 10, size=(3,5))
random
In [ ]:
np.random.random()
In [ ]:
np.random.random((3,5))
normal
In [ ]:
np.random.normal()
In [ ]:
np.random.normal(10, 100)
In [ ]:
np.random.normal(0, 1, (3, 5))

np.random.<TAB> 查看random中的更多方法

In [ ]:
np.random?
In [ ]:
np.random.normal?
In [ ]:
help(np.random.normal)

numpy.array 基本操作

In [ ]:
import numpy as np
np.random.seed(0)

x = np.arange(10)
In [ ]:
x
In [ ]:
X = np.arange(15).reshape((3, 5))
In [ ]:
X

numpy.array 的基本属性

In [ ]:
x.ndim
In [ ]:
X.ndim
In [ ]:
x.shape
In [ ]:
X.shape
In [ ]:
x.size
In [ ]:
X.size

numpy.array 的数据访问

In [ ]:
x
In [ ]:
x[0]
In [ ]:
x[-1]
In [ ]:
X
In [ ]:
X[0][0] # 不建议!
In [ ]:
X[0, 0]
In [ ]:
X[0, -1]
In [ ]:
x
In [ ]:
x[0:5]
In [ ]:
x[:5]
In [ ]:
x[5:]
In [ ]:
x[4:7]
In [ ]:
x[::2]
In [ ]:
x[1::2]
In [ ]:
x[::-1]
In [ ]:
X
In [ ]:
X[:2, :3]
In [ ]:
X[:2][:3] # 结果不一样,在numpy中使用","做多维索引
In [ ]:
X[:2, ::2]
In [ ]:
X[::-1, ::-1]
In [ ]:
X[0, :]
In [ ]:
X[:, 0]

Subarray of numpy.array

In [ ]:
subX = X[:2, :3]
subX
In [ ]:
subX[0, 0] = 100
subX
In [ ]:
X
In [ ]:
X[0, 0] = 0
X
In [ ]:
subX
In [ ]:
subX = X[:2, :3].copy()
In [ ]:
subX[0, 0] = 100
subX
In [ ]:
X

Reshape

In [ ]:
x.shape
In [ ]:
x.ndim
In [ ]:
x.reshape(2, 5)
In [ ]:
x
In [ ]:
A = x.reshape(2, 5)
A
In [ ]:
x
In [ ]:
B = x.reshape(1, 10)
B
In [ ]:
B.ndim
In [ ]:
B.shape
In [ ]:
x.reshape(-1, 10)
In [ ]:
x.reshape(10, -1)
In [ ]:
x.reshape(2, -1)
In [ ]:
x.reshape(3, -1)

numpy.array 合并和分割

In [ ]:
import numpy as np

numpy.array 的合并

In [ ]:
x = np.array([1, 2, 3])
y = np.array([3, 2, 1])
In [ ]:
np.concatenate([x, y])
In [ ]:
z = np.array([666, 666, 666])
np.concatenate([x, y, z])
In [ ]:
A = np.array([[1, 2, 3],
              [4, 5, 6]])
np.concatenate([A, A])
In [ ]:
np.concatenate([A, A], axis=1)
In [ ]:
np.concatenate([A, z])
In [ ]:
np.concatenate([A, z.reshape(1, -1)])
In [ ]:
np.vstack([A, z])
In [ ]:
B = np.full((2,2), 100)
In [ ]:
np.hstack([A, B])
In [ ]:
np.hstack([A, z])

numpy.array 的分割

In [ ]:
x = np.arange(10)
x    
In [ ]:
x1, x2, x3 = np.split(x, [3, 7])
In [ ]:
x1
In [ ]:
x2
In [ ]:
x3
In [ ]:
x1, x2 = np.split(x, [5])
In [ ]:
x1
In [ ]:
x2
In [ ]:
A = np.arange(16).reshape((4, 4))
A
In [ ]:
A1, A2 = np.split(A, [2])
In [ ]:
A1
In [ ]:
A2
In [ ]:
A1, A2 = np.split(A, [2], axis=1)
In [ ]:
A1
In [ ]:
A2
In [ ]:
upper, lower = np.vsplit(A, [2])
In [ ]:
upper
In [ ]:
lower
In [ ]:
left, right = np.hsplit(A, [2])
In [ ]:
left
In [ ]:
right
In [ ]:
data = np.arange(16).reshape((4, 4))
data
In [ ]:
X, y = np.hsplit(data, [-1])
In [ ]:
X
In [ ]:
y
In [ ]:
y[:, 0]



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值