numpy入门<一>
numpy入门
参考w3cschool numpy tutorial(基本上就是照着翻译,然后加入自己的理解,顺便把代码结果附上,over)
数组
可以将list tuple直接通过array()转化成ndarray
1 | import numpy as np |
arr = np.array([1, 2, 3, 4], ndmin=5)
print(arr)
res: [[[[[1 2 3 4]]]]]
1 |
|
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[1, 2])
res: 6
1 |
|
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[1, -1])
res: 6
1 |
|
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[1, 0:1])
res: [4]
1 |
|
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[::2])
res: [1 3 5 7]
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[1, 1:4])
res: [7, 8, 9]
1 |
|
i - integer
b - boolean
u - unsigned integer 无符号整型
f - float
c - complex float 复数浮点数
m - timedelta
M - datetime 日期时间
O - object 对象
S - string
U - unicode string 采用unicode编码的字符串
V - fixed chunk of memory for other type ( void ) void
1 |
|
arr = np.array([1, 2, 3, 4], dtype=’i4’) #四个字节 一个字节八位
print(arr)
print(arr.dtype)
res: [1 2 3 4]
int32
1 |
|
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(‘i’)
newarr[0] = 10
print(newarr)
print(arr)
res: [10 2 3]
[1.1 2.1 3.1]
1 |
|
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 42
print(arr)
print(x)
res: [42 2 3 4 5]
[42 2 3 4 5]
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr)
print(x)
res: [31 2 3 4 5]
[31 2 3 4 5]
1 |
|
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
y[0] = 2
print(x.base)
print(y.base)
print(type(y.base))
print(y)
y.base[0] = 0
print(arr)
print(y)
1 |
|
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(type(arr.shape))
print(arr.shape)
res: <class ‘tuple’>
(2, 4)
arr = np.array([1, 2, 3, 4], ndmin=5)
print(arr)
print(‘shape of array :’, arr.shape)
res: [[[[[1 2 3 4]]]]]
shape of array : (1, 1, 1, 1, 4)
1 |
|
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(4, 3)
print(newarr)
res:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
1 |
|
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)
res:[1 2 3 4 5 6 7 8]
1 |
|
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
for x in arr:
print(x)
res:
[[1 2 3]
[4 5 6]]
[[ 7 8 9]
[10 11 12]]
1 |
|
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
for x in np.nditer(arr):
print(x)
res:
1 |
|
arr = np.array([1, 2, 3])
for x in np.nditer(arr, flags=[‘buffered’], op_dtypes=[‘S’]):
print(x)
print(type(x))
res:
b’1’
<class ‘numpy.ndarray’>
b’2’
<class ‘numpy.ndarray’>
b’3’
<class ‘numpy.ndarray’>
1 |
|
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
for x in np.nditer(arr[:, ::2]):
print(x)
res:
1 |
|
arr = np.array([1, 2, 3])
for idx, x in np.ndenumerate(arr):
print(idx, x)
res:
(0,) 1 #这个如果不是idx,x,直接是x的话,拿到的是一个tuple
(1,) 2 #这里的idx同样是一个tuple
(2,) 3
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
for idx, x in np.ndenumerate(arr):
print(idx, x)
res: #如果是高维的,同样是挨个遍历
(0, 0) 1
(0, 1) 2
(0, 2) 3
(0, 3) 4
(1, 0) 5
(1, 1) 6
(1, 2) 7
(1, 3) 8
`感觉别人有点盛气凌人,是我的错觉吗,一定要学会控制自己的情绪,一定要抱持冷静客观,喷人是解决不了问题的(可能会爽)QAQ 也许是最近压力太大造成的,好好休息吧`





