numpy切片
时间: 2023-06-22 15:17:26 浏览: 86
numpy 索引及切片
S and check_game_over(balls_on_board):
screen.fill(black)
message("Game Over!", white)
pygame.display.update()
time.sleep(2)
return
pygame.display.update()
for event in pygame.event.get():
if event.type ==在 NumPy 中,切片是指从数组中选择子集的过程。下面是一些 NumPy 切片的 pygame.QUIT:
pygame.quit()
exit(0)
def check_game_over(balls_on_board):
last_row = []
语法和示例:
1. 一维数组的切片:array[start: end: step]
- start:开始位置 for ball in balls_on_board:
if ball[1] not in last_row:
last_row.append(ball[1])
return len,默认为0
- end:结束位置(不包括该位置),默认为数组长度
- step:步长,默认(last_row) <= 3
def shoot_ball(balls_on_board, ball_color, speed):
shoot = False
last_ball_pos为1
示例:
```
import numpy as np
arr = np.array([1, 2, 3, = balls_on_board[-1]
new_ball_pos = (last_ball_pos[0], last_ball_pos[1] - BALL_DIAM 4, 5])
# 选择从索引1到索引4的子集
print(arr[1:ETER)
if new_ball_pos[1] <= 0:
return balls_on_board, ball_color, shoot
balls_on_board4]) # [2 3 4]
# 从索引0开始,每隔两个元素选择一个.append(new_ball_pos)
for i in range(len(balls_on_board) - 1):
ball_pos = balls_on_board[i]
子集
print(arr[0::2]) # [1 3 5]
```
2. 二维数组的切片:array[start1: end1: step1, start2: end2: step2]
- start1:第 if ball_pos[1] == new_ball_pos[1]:
if abs(ball_pos[0] - new_ball_pos[0])一维开始位置,默认为0
- end1:第一维结束位置(不包括该位置),默认为数组长度 <= BALL_DIAMETER:
balls_on_board.pop()
balls_on_board.pop()
shoot = True
break
return
- step1:第一维步长,默认为1
- start2:第二维开始位置,默认为0
balls_on_board, ball_color, shoot
gameLoop()
```
4. **2048小游戏:**
2048是一款 - end2:第二维结束位置(不包括该位置),默认为数组长度
- step2:第二数字移动策略游戏,玩家通过滑动屏幕上的数字块,使相同数字的方块相加维步长,默认为1
示例:
```
import numpy as np
arr = np.array([[1, 2,,最终得到2048方块为胜利。
```python
import random
# 初始化游戏界面
board = [[ 3], [4, 5, 6], [7, 8, 9]])
# 选择第0行0 for i in range(4)] for j in range(4)]
# 定义颜色
white = (255, 255,到第2行(不包括第2行),第1列到第3列(不包括第3列)的子 255)
black = (0, 0, 0)
# 字体
font_style = pygame.font.SysFont(None, 50集
print(arr[0:2, 1:3]) # [[2 3]
# [5 6)
def draw_board(board):
for i in range(4):
for j in range(4):
pygame.draw.rect(screen, white]]
# 从第0行开始,每隔两行选择一个子集
print(arr[0::2, :, (i * 100, j * 100, 100, 100), 2)
if board[i][j] !=]) # [[1 2 3]
# [7 8 9]]
```
阅读全文